【问题标题】:UITableViewCell subview (left side)UITableViewCell 子视图(左侧)
【发布时间】:2011-04-09 18:16:34
【问题描述】:

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

编辑:当整个表格进入编辑模式时,我如何执行操作(在这种情况下淡化子视图)? (不是通过在单元格上滑动)。我之所以要实现这一点是因为如果表格视图处于编辑模式,表格视图会在单元格左侧显示“-”按钮。 (如果editing=NO,我想在单元格的左侧显示我自己的按钮,如果editing=YES则淡出,如果tableView离开editingmode(editing=NO)再次显示)

第一个想法让我想到这样的事情:

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

但我必须遍历所有单元格,我认为这会导致性能大幅下降。你怎么看?

【问题讨论】:

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


【解决方案1】:

您想设置 UITableViewCell 的 Editing Accessory View。有关这方面的信息,请参阅editingAccessoryView property。更多信息可以在TableView Programming GuideCustomizing Cells section 中找到。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多