定位UITableViewCell的imageView

use*_*132 16 iphone cocoa-touch uitableview uiimageview

在UITableView的每个UITableViewCell中,我都在其imageView中放置一个图像.但是,如果我使用tableView:heightForRowAtIndexPath:增加单元格的高度以容纳更多文本,我发现:

  1. 图像垂直居中对齐.
  2. 图像的左边距增加.这会将文本向右推,使其左边距不再与上方和下方单元格中的文本对齐.

我希望图像垂直对齐,以便它位于单元格的左上角(如下图中的第一个单元格)并且不会使其左边距增加(因此左边距为第二个单元格中的文本与第一个单元格中的文本对齐.

改变imageView的框架,中心等似乎没有任何影响.有任何想法吗?谢谢...

(我有一个问题的图像,但是我不会让我发布图像,因为我是一个名声不到10的菜鸟.Grrr ......)

Tom*_*ift 46

您需要子类UITableViewCell并覆盖layoutSubviews,如下所示:

- (void) layoutSubviews
{   
    [super layoutSubviews];

    self.imageView.frame = CGRectMake( 10, 10, 50, 50 ); // your positioning here
}
Run Code Online (Sandbox Code Playgroud)

在您的cellForRowAtIndexPath:方法中,请务必返回新单元格类型的实例.

  • 它不起作用,因为超类在layoutSubviews的实现中执行布局.通过调用[super layoutSubviews],superclas将定位imaveView和任何其他标签/图标,然后您可以重新定位它们. (2认同)

jer*_*jer 6

您认为需要调整默认样式中项目的大小或位置的那一刻,您需要考虑创建自定义单元格的时间,其中您自己的项目大小和位置与您希望的一样.这就是您可以创建自定义单元格的原因.:)


Wri*_*sCS 0

您可以创建自定义单元格并将对象放置在您需要的位置以及设置自动遮罩值。