【发布时间】:2017-10-28 00:31:23
【问题描述】:
在我构建的应用程序中,通过在 cellForRowAtIndexPath 中运行以下代码,我有一个表格视图,显示每个单元格左侧的图像:
cell.imageView.image = [UIImage imageNamed:myImage];
但是图片太大了,所以我把它缩小了:
cell.imageView.transform = CGAffineTransformMakeScale(0.3, 0.3);
这在 iOS 10 中运行良好。但是一旦我使用 iOS 11 SDK 升级到最新的 Xcode,图像变得非常庞大。事实证明,转换图像视图的第二行代码现在什么都不做:我可以将其注释掉,将 0.3 更改为其他内容,等等,这没有任何区别。 CGAffineTransformMakeScale 在新的 Xcode 中仍然有文档,所以我假设它没有被弃用,但是为什么这会在 iOS 11 中中断,我该如何修复它?有任何想法吗?提前致谢!请注意,我使用的是 Objective-C。
编辑:
刚刚尝试对代码进行 3 处更改:
将第二行更改为
cell.imageView.transform = CGAffineTransformMakeScale(0.0000001, 0.0000001);。什么都没有发生(即图像视图和其中的图像仍然一样大)。将第二行更改为
cell.imageView.transform = CGAffineTransformMakeScale(0, 0);。图像从图像视图中消失了,但图像视图仍然是相同的大小,并且您可以分辨出来,因为它仍然会替换单元格中的文本并将其推向右侧。删除第一行代码(不再将图像分配给图像视图)。 imageview 消失,文本一直移动到单元格的左侧。
也许这可以帮助了解正在发生的事情?
【问题讨论】:
-
分享图片
-
@SyedQamarAbbas,图像视图是动态的,有很多很多的图像可以显示在表格单元格标题的左侧。在 iOS 11 之前,它们都适当地缩小了,现在它们都没有。所以它不是特定于图像的。
标签: ios objective-c uitableview cgaffinetransform