应用程序包含包含自定义的UITableViewCell一个UITableView。 反过来单元包含一个UIImageView。
问题是,在的cellForRowAtIndexPath设置图像,使图像占据整个的UITableViewCell区域:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"bigrect" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:path];
cell.imageView.image = image;
return cell;
}
在图1B中,“纵横适合”已经被选择作为模式,但改变该字段对结果没有明显的影响。
然而,当图像从IB设置,在我的代码没有调用cell.imageView.image =图像,结果正是我想看到的。 图像保持我为的UIImageView在IB定义的,并不试图将规模扩大到适合的UITableViewCell的整个垂直高度的范围之内:
我使用的图片是1307x309像素,万一这很重要。 测试是在iOS 6.1模拟器上运行。
我注意到这个从UIImageView的文档 :
在iOS 6中和后,如果您分配一个值这个观点的restorationIdentifier属性,尝试保留所显示的图像的帧。 具体地,类保存界限,中心的值,和变换视图和下层的anchorPoint属性的属性。 在恢复过程中,以使得图像看起来完全相同前的图像视图恢复这些值。 有关状态保存和恢复如何工作的详细信息,请参见iOS应用程序编程指南。
然而,这里没有什么或其他地方的文件中我能找到解决的问题。 添加“富”到的UIImageView在IB下的“身份”的“中兴ID”并没有改变行为。 取消选中“使用自动布局”也并没有改变行为。
如何防止iOS设备的设置图像时在一个UITableViewCell调整大小的UIImageView?