MPMediaItemArtwork init(图片:)在iOS 10.0中弃用
问题描述:
苹果已弃用init(image:)
方法MPMediaItemArtwork
在iOS 10中。 什么是新的替代方案。MPMediaItemArtwork init(图片:)在iOS 10.0中弃用
类的显示界面显示如下方法可用在新的操作系统版本
public init(boundsSize: CGSize, requestHandler: @escaping (CGSize) -> UIImage)
任何人都知道如何使用它?
还质疑2,前面的问题的一部分:是否显示现在玩元使用MPNowPlayingInfoCenter
工作在模拟器锁屏和控制中心吗?
答
您可以使用下面的代码:
let image = UIImage(named: "logo")!
let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
return image
})
而且,是的,“现在玩”元数据显示在模拟器中的控制中心。
答
我刚才看到了这一点,我很困惑过,但我想这是正确的做法:
self.remoteArtwork = [[MPMediaItemArtwork alloc] initWithBoundsSize:CGSizeMake(600, 600) requestHandler:^UIImage * _Nonnull(CGSize size) {
UIImage *lockScreenArtworkApp = [UIImage imageNamed:@"lockScreenLogo"];
return [self.manager resizeImageWithImage:lockScreenArtworkApp scaledToSize:size];
}];
的方法 - 在我的单身“经理”的情况下-Class
- (UIImage *)resizeImageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
// In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
// Pass 1.0 to force exact pixel size.
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
你可以对这个MPMediaItemArtwork初始化器使用的“为什么”和“如何”(地狱......)有所了解吗?这个街区有什么期望?以所提供的大小返回UIImage?我在网上搜索,无法获得合理的文档。 –
@MottiShneor需要各种尺寸的图像 - 控制中心,锁屏,扩展控制中心,iPhone,iPad。如果您的媒体有不同大小的图稿,则可以在iOS请求时返回适当的媒体。 –
但是无论大小如何,您都会一次又一次返回相同的图像?将图像的大小调整为适合?这是否可以接受? –