UITableViewCell子类 - 如何向某些行添加按钮

时间:2011-05-13 00:37:38

标签: iphone uitableview

我有一个UITableViewCell子类,它有3个标签和大小,并根据文本长度定位标签。选中后,所有行都执行相同的功能。我想要一些行也有一个与它们相关的详细视图。所以我想将UIButton添加到几行,但我不知道该怎么做。

我应该创建UITVCell子类的UIButton成员吗?如果按钮不是nil,我应该在layoutSubviews中为它腾出空间吗?

cellForRowAtIndexPath会是什么样子?我需要两个重用标识符吗?一个用于按钮,一个用于无按钮?或者只是创建按钮,具有按钮的单元格将自动检测layoutSubviews中的按钮并为其腾出空间?

我无法在网上找到任何人在不使用XIB的情况下执行此操作的示例..

编辑 - 所以我按照下面的建议添加了细节公开按钮,我可以检测到我的单元格有一个accessoryType,但是accessoryView的宽度和高度都是垃圾..我需要一个宽度和高度,因为现在配件在顶部我的行文本,因为我在layoutSubviews代码中没有考虑它..

// CustomTableViewCell.m:
- (void)layoutSubviews {
    // I need a width / height here so I can accomodate the accessory button.
    if ( self.accessoryType != UITableViewCellAccessoryNone ) {
        NSLog(@"accessory! %f %f",self.accessoryView.frame.size.width, self.accessoryView.frame.size.height);
    }
}

1 个答案:

答案 0 :(得分:2)

您不需要向具有详细视图的行添加UIButton - 只允许它们具有公开按钮(注意:按钮,而不是指示器!)。点击时,公开按钮通常会显示该单元格的详细视图。

要为特定单元格启用公开按钮,请在cellForRowAtIndexPath方法中执行以下操作:

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

此处有更多详情:

What's the difference between an Detail Disclosure Button and an Disclosure Indicator?