当您使用.imageView.adjustsImageWhenAncestorFocused
时,您可以缩放图像,获得更大的焦点。图像超越了它的界限。这意味着你无法看到完整的图像 - 这是应付各方面的。tvOS adjustsImageWhenAncestor专注于作物图像集合视图单元格
您有:
你想:
当您使用.imageView.adjustsImageWhenAncestorFocused
时,您可以缩放图像,获得更大的焦点。图像超越了它的界限。这意味着你无法看到完整的图像 - 这是应付各方面的。tvOS adjustsImageWhenAncestor专注于作物图像集合视图单元格
您有:
你想:
如果你想从箱子工作,你需要记住保留聚焦/安全区的大小(从文档)创建图像时。
在我的情况下,我有我的服务器图像,我不能编辑它们。 什么工作对我来说 - 这是正确的设置前,重新绘制图像:
UIImage *oldImage = [UIImage imageNamed:@"example"];
CGFloat width = cell.imageView.frame.size.width;
CGFloat height = cell.imageView.frame.size.height;
CGSize newSize = CGSizeMake(width, height);
CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
CGImageRef imageRef = oldImage.CGImage;
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
CGContextRef resizeContext = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(resizeContext, kCGInterpolationHigh);
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height);
CGContextConcatCTM(resizeContext, flipVertical);
CGContextDrawImage(resizeContext, newRect, imageRef);
CGImageRef newImageRef = CGBitmapContextCreateImage(resizeContext);
UIImage *newImageResized = [UIImage imageWithCGImage:newImageRef];
CGImageRelease(newImageRef);
UIGraphicsEndImageContext();
dispatch_async(dispatch_get_main_queue(), ^{
cell.imageView.image = newImageResized;
});
它也没有必要以这种方式重新绘制,但问题是,你需要绘制UIImage
再次为了让您的图片显示正常。代码here。
你什么时候重新绘制它们?如果您在焦点上动态应用此代码,是不是存在性能问题? – c0d3Junk13
我在tvOS应用程序中面临同样的问题。如果图像尺寸不是16:9比例,则聚焦图像显示不正确,图像不能正常显示。 – vipulk617
你能解决这个问题吗? – vipulk617
@ vipulk617请阅读我的回答。 –