www.mydownloadedimages.com/{wIDth}x{height}
但它没有用.
我可以以任何其他方式在客户端调整大小.在TVContentItem类中,我只有NSURL对象.没有UIImage对象.
非常感谢.
这是Apple关于图像尺寸和形状的文档
// ~ 2 : 3// ~ 1 : 1// ~ 4 : 3// ~ 16 : 9// ~ 8 : 3// ~ 87 : 28 //@property imageShape //@abstract A TVContentItemImageShape value describing the intended aspect ratio or shape of the image. //@discussion For top Shelf purposes: the subset of values which are //valID in this property,for TVContentItems in the topShelfItems property //of the TVtopShelfProvIDer,depends on the value of the topShelfStyle //property of the TVtopShelfProvIDer: TVtopShelfContentStyleInset: valID: TVContentItemImageShapeExtraWIDe TVtopShelfContentStyleSectioned: valID: TVContentItemImageShapePoster valID: TVContentItemImageShapeSquare valID: TVContentItemImageShapeHDTV
当此属性的值对top Shelf样式无效时,系统保留以任何方式缩放图像的权限.
解决方法 你说TVContentItem没有UIImage类型属性是对的.由于TVContentItem还接受imageURL属性中的本地文件URL,因此解决方法可以是:>从互联网上抓取UIImage
>使用顶部货架图像的大小创建新的图像上下文
>将其保存到NSCacheDirectory中
>将本地图像URL设置为imageURL.
以下是步骤:
>让我们创建我们的TVContentItem对象:
let IDentifIEr = TVContentIDentifIEr(IDentifIEr: "myPicture",container: wrapperID)!let contentItem = TVContentItem(contentIDentifIEr: IDentifIEr )!
>设置contentItem的imageShape:
contentItem.imageShape = .HDTV
>从互联网上抓取图像.实际上我同步这样做,你也可以尝试使用其他@R_419_6480@来获取它(NSURLConnection,AFNetworking等…):
let data : NSData = NSData(contentsOfURL: NSURL(string: "https://s3-ak.buzzfed.com/static/2014-07/16/9/enhanced/webdr08/edit-14118-1405517808-7.jpg")!)!
>准备保存图像的路径并从数据对象获取UIImage:
let filename = "picture-test.jpg"let paths = NSSearchPathForDirectorIEsInDomains(.CachesDirectory,.UserDomainMask,true)let filepath = paths.first! + "/" + filenamelet img : UIImage = UIImage(data: data)!
>假设您已经设置了topShelfStyle属性,请使用TVtopShelfImageSizeforShape方法获取顶层图像的大小.这将是您的图像上下文的大小:
let shapeSize : CGSize = TVtopShelfImageSizeforShape(contentItem.imageShape,self.topShelfStyle)
>创建shapeSize大小的图像上下文,并将下载的图像绘制到上下文rect中.在这里,您可以对图像进行所有修改,将其调整为所需的大小.在这个例子中,我从Instagram拍摄了一张方形图像,并在左右两侧放置了白色信箱带.
UIGraphicsBeginImageContext(shapeSize)let imageShapeInRect : CGRect = CGRectMake((shapeSize.wIDth-shapeSize.height)/2,shapeSize.height,shapeSize.height)img.drawInRect(imageShapeInRect)let newImage = UIGraphicsGetimageFromCurrentimageContext()UIGraphicsEndImageContext()
>最后,将此图像保存到NSCacheDirectory中,并将图像路径设置为contentItem的imageURL.
UIImageJPEGRepresentation(newImage,0.8)!.writetofile(filepath,atomically: true)contentItem.imageURL = NSURL(fileURLWithPath: filepath)
>使用其他详细信息(如标题,内部链接等)完成您的TVContentItem,运行顶部的扩展架…etvoilà!
以上是内存溢出为你收集整理的swift – AppleTv / TvOS – 调整TVContentItems中保存到ImageURL的TopShelf图像全部内容,希望文章能够帮你解决swift – AppleTv / TvOS – 调整TVContentItems中保存到ImageURL的TopShelf图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)