Iphone 如何控制图像在分组的tableview单元格中的位置?

Iphone 如何控制图像在分组的tableview单元格中的位置?,iphone,objective-c,uitableview,Iphone,Objective C,Uitableview,由于某些原因,我似乎无法更改分组tableview单元格中图像的默认位置 在cellForRowAtIndexPath方法中,我使用以下方法加载图像: cell.imageView.image = [UIImage imageWithContentsOfFile:MainImagePath]; 我一直在尝试以下方法来调整图像的位置,但没有成功 cell.contentMode = UIViewContentModeCenter; 我也试过,但运气不好 cell.imageView.conte

由于某些原因,我似乎无法更改分组tableview单元格中图像的默认位置

在cellForRowAtIndexPath方法中,我使用以下方法加载图像:

cell.imageView.image = [UIImage imageWithContentsOfFile:MainImagePath];
我一直在尝试以下方法来调整图像的位置,但没有成功

cell.contentMode = UIViewContentModeCenter;
我也试过,但运气不好

cell.imageView.contentMode = UIViewContentModeCenter;

您能否使用imageView的框架,即: cell.imageView.frame=CGFrameMake(0.0,0.0,20.0,20.0)

或者使用设置图像视图的中心

cell.imageView.center=CGPointMake(20.0,10.0)

=塞思


编辑:谢谢乔纳,我修好了

要移动
图像视图
,需要更改其帧。您所做的只是重新配置它对视图大小调整的响应方式。尝试将
cell.imageView.center
设置为所需的新中心


您应该知道
tableView:willDisplayCell:forrowatinexpath:
。这将在显示单元格之前立即调用,这是您建立布局的最后(通常也是最佳)机会
tableView:cellforrowatinexpath:
调用得更早,其结果被缓存。因此,实际显示时布局可能会出错(例如,由于视图大小调整)。这就是为什么我们通常在
tableView:willDisplayCell:forrowatinexpath:

中进行布局,UITableViewCell的默认布局是[imageView][textLabel][accessoryView]。你不能改变这一点


如果要在UITableViewCell中任意定位图像,必须将UIImageView添加到该单元格的
contentView

也许您想到的是OS2.2,当时的布局有点神奇?OS3明确地允许您访问底层的UIView指针,这是为了让您可以将它们视为普通视图并相应地修改它们,包括移动它们。检查这个例子问题的其他答案。由于UITableViewCell负责这些视图的布局,所以在我看来,更改它们的位置似乎是一个难题。它可能会工作,但我没有看到任何文档可以保证UITableViewCell在编辑和非编辑状态之间转换时不会重置其布局。另一方面,苹果的文档确实建议在计算单元的contentView中添加子视图,在这种情况下,您可以保证自己对其布局全权负责。布局问题是苹果为什么给我们提供tableView:willDisplayCell:ForRowatineXpath:,以支持的方式给我们一个机会,在显示之前执行布局和更新。如果您可以访问WWDC视频,“完善您的iPhone表格视图”对此主题进行了很好的讨论。您能推荐如何按照您的建议设置cell.imageView.center吗?Seth下面描述的方法会导致“参数类型不兼容”错误。谢谢哦,seth的代码有一个小的输入错误,我得到了它的构建,但它似乎仍然被忽略。您正在tableView中设置它:willDisplayCell:forRowAtIndexPath:?发布代码。谢谢!我想你指的是CGPointMake,而不是cgpmakepoint。