UITableViewCell子视图(左侧)

时间:2011-04-09 18:16:35

标签: iphone objective-c cocoa-touch uitableview uikit

当表格进入编辑模式时,是否可以在单元格左侧实现交叉渐变的UITableViewCell子视图? 我面临的另一个问题是cell.textLabel的边界是只读的。是否可以使用某种插入标签? (因为我,如上所述,想要使用左侧的视图)

编辑:当整个表进入编辑模式时,如何执行操作(在这种情况下淡出子视图)? (不要通过滑动细胞)。我想实现这个的原因是因为tableview显示单元格左侧的“ - ”按钮,如果它在编辑模式中。 (如果编辑= NO,我想在单元格的左侧显示我自己的按钮,如果编辑= YES则淡出它,如果tableView离开编辑模式则再次显示(编辑=否))

第一个想法指引我做这样的事情:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    if(editing) {
        //fade out my own button
    } else {
        //show my own button
    }
}

但我必须遍历所有细胞,我认为这会导致性能恶化。你觉得怎么样?

2 个答案:

答案 0 :(得分:1)

您想要设置UITableViewCell的编辑附件视图。有关此信息,请参阅editingAccessoryView property。可以在Customizing Cells sectionTableView Programming Guide中找到更多信息。

表视图单元格的内容视图中的标签是只读的,因此您无法重新分配它,但其属性是可变的。实际上,您可以在表格视图单元格的范围内移动标签。它可能令人困惑,但请查看表视图编程指南的Characteristics of Cell Objects部分。在其中,显示了每个嵌套视图的边界框(并非所有嵌套视图始终可见)。为了您的目的,一个很好的练习是将UITableViewCell的每个子视图的背景颜色设置为不同的颜色,然后尝试调整它们的大小。这样做并了解正在发生的事情可能会让您实现您想要的最终结果。

答案 1 :(得分:1)

最后我创建了一个自定义的UILabel,而不是默认的UITableView textLabel,并在左侧添加了一个自定义按钮。在setEditing方法中,我淡入/淡出此按钮。