【问题标题】:How to add Custom EditingAccessoryView for UITableView?如何为 UITableView 添加自定义 EditingAccessoryView?
【发布时间】:2010-10-25 08:01:27
【问题描述】:

我想在单元格中添加自定义 EditingAccessoryView,当用户滑动代替删除按钮时,我想显示我的自定义视图。

【问题讨论】:

  • 当tableView处于编辑模式时,你能在单元格中显示指示器按钮吗?

标签: iphone uitableview ios4


【解决方案1】:

似乎没有这样的功能。您所能做的就是使用以下函数为“删除”确认按钮提供自定义文本。

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

【讨论】:

  • 谢谢。但我想添加两个按钮来代替一个删除按钮。不想更改该按钮的标题
  • 这正是我想弄清楚的。抱歉,我不会投票,因为它没有解决所提出的问题。不过谢谢!
【解决方案2】:

来自 xib 的设计视图,如下例所示

现在在.h文件中制作uiview的IBOutlet

IBOutlet UIView *accessoryView;

将该 IBOutlet 连接到您的设计视图。

现在在 .m 文件中将该视图设置为表格单元格的editingAccessoryView

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.editingAccessoryView = accessoryView;

       }

}


- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {

   return NO;

}

现在,当您滑动时,您的自定义视图将显示在删除按钮的位置

【讨论】:

  • 我现在也在尝试这样做,EightyEight,并找到了这个解决方案——我认为这是正确的——在 iOS 6 下不起作用(模拟器,在 XCode 5 beta 上) .
  • 这根本不起作用。首先,为“canEditRowAtIndexPath”返回 NO 将完全阻止editingAccessoryView 出现。第二个问题是您需要为每个新单元格实例化附件视图的新实例。最后...我认为“dequeueReusableCellWithIdentifier”永远不会返回 nil,这当然意味着永远不会分配editingAccessoryView。你真的测试过这段代码吗?我真的不这么认为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 2019-05-22
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多