首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:添加新单元格时的editingStyleForRowAtIndexPath

iOS:添加新单元格时的editingStyleForRowAtIndexPath
EN

Stack Overflow用户
提问于 2011-02-23 13:47:13
回答 1查看 2.5K关注 0票数 1

当用户用以下代码将表切换到编辑模式时,我将向UITableView部分添加一行:

代码语言:javascript
复制
- (void) setEditing:(BOOL) editing animated:(BOOL) animated {
    [super setEditing:editing animated:animated];
    if (editing) {
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject: [NSIndexPath indexPathForRow:0 inSection:SECTION_SUPPLIERS]]   withRowAnimation:UITableViewRowAnimationFade];
    } 
}

目标是创建一个“添加新供应商.”划。但是,当表想获得编辑样式以便可以添加正负图标时,我就有问题了。

代码语言:javascript
复制
- (UITableViewCellEditingStyle) tableView:(UITableView *) tableView editingStyleForRowAtIndexPath:(NSIndexPath *) indexPath {
    return ([self.tableView isEditing] && indexPath.row == 0) ? UITableViewCellEditingStyleInsert : UITableViewCellEditingStyleDelete;
}

顺序似乎是这样的:

  1. 表切换到编辑。此时只有一个供应商行,因此它使用行== 0查询编辑样式。
  2. 完成了新行的插入,然后使用行== 0.

再次触发对编辑样式的另一个查询。

因此,如果我使用这个序列,并使用行号和tableView isEditing来决定编辑样式图标,我将得到添加新的和当前的供应商行,并在它们上加上图标。

插入一行并指定适当的编辑样式的最佳方法是什么?添加新行加上,对任何其他行都指定减号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-23 13:59:33

你试过把你的“添加新.”在底部而不是在顶部划船?与其检查[indexPath row] == 0,不如检查[indexPath row] == [items count]tableView:numberOfRowsInSection:实现如下所示:

代码语言:javascript
复制
- (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section {
    int numberOfRows = [items count];

    if ([self isEditing]) {
        numberOfRows++;
    }

    return numberOfRows;
}

这就是iPhone编程中的例子:大Nerd牧场指南的工作原理。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5091720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档