自定义笔尖UITableViewCell高度

Chu*_*uck 9 iphone objective-c uitableview

我在IB中创建了一个自定义UITableViewCell,将它链接到根视图控制器的属性,然后在CellForRowAtIndexPath中进行设置.但我绘制的细胞的高度与我在IB中建立的高度不一样,建议?这是一些截图和代码. 替代文字

替代文字

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *AddressCellIdentifier = @"AddressCellIdent";

    UITableViewCell *thisCell = [tableView dequeueReusableCellWithIdentifier:AddressCellIdentifier];
    if (thisCell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"AddressCell" owner:self options:nil];
        thisCell = addressCell;
        self.addressCell = nil;
    }

    return thisCell ;
}
Run Code Online (Sandbox Code Playgroud)

addressCell是@property(非原子,赋值)IBOutlet UITableViewCell*addressCell;,并在IB中链接到文件的所有者(表视图控制器).

我正在使用Apple的表格视图编程指南中的示例.

小智 7

IB中有两个位置需要设置行高.首先是单元格本身的自定义行高.单击要调整大小的单元格,然后单击右侧"实用工具"窗口中的"大小"检查器(标尺).在"表视图单元格"部分下方的行顶部设置行高.单击自定义复选框.然后单击左侧"文档大纲"窗口中的"表视图".返回右侧"实用工具"窗口中的尺寸检查器,将整个工作台的行高设置为所需的高度.
使用此实现,您无需向tableviewcontroller添加任何代码.


Wri*_*sCS 5

您可以使用以下方法调整单元格的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    CGFloat result;
    result = 120.0f;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这适用于自定义单元格.

  • 我有同样的问题和同样的问题.如果我们在IB上设置单元格的高度,为什么我们也应该在heightForRowAtIndexPath中设置它? (5认同)
  • 太糟糕了,我知道heightForRowAtIndexPath,但我希望使用基于NIB的单元格可以让我避免使用它.谢谢! (4认同)

Six*_*tto 5

委托的-tableView:heightForRowAtIndexPath:方法是一种方法,作为WrightsCS说.如果所有行的高度相同,则另一个选项是设置rowHeight表视图本身的属性.(前者的优点是可以让每行返回任意值.)

  • 咦?这就是我的观点:委托方法允许行不同.他们不在你的榜样,但他们*可能*.设置`rowHeight`属性不会提供该选项. (3认同)