2016-05-16 47 views
2

当您使用.imageView.adjustsImageWhenAncestorFocused时,您可以缩放图像,获得更大的焦点。图像超越了它的界限。这意味着你无法看到完整的图像 - 这是应付各方面的。tvOS adjustsImageWhenAncestor专注于作物图像集合视图单元格

您有:

enter image description here

你想:

enter image description here

+0

我在tvOS应用程序中面临同样的问题。如果图像尺寸不是16:9比例,则聚焦图像显示不正确,图像不能正常显示。 – vipulk617

+0

你能解决这个问题吗? – vipulk617

+0

@ vipulk617请阅读我的回答。 –

回答

1

如果你想从箱子工作,你需要记住保留聚焦/安全区的大小(从文档)创建图像时。

在我的情况下,我有我的服务器图像,我不能编辑它们。 什么工作对我来说 - 这是正确的设置前,重新绘制图像:

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

+0

你什么时候重新绘制它们?如果您在焦点上动态应用此代码,是不是存在性能问题? – c0d3Junk13

相关问题