新增“滑动删除”功能但并非在所有细胞中

发布于 2024-11-27 21:03:42 字数 696 浏览 1 评论 0原文

我想在我的表格视图中添加“滑动删除”的可能性,但我不希望将其用于表格的最后一个单元格!

如果indexPath.row是最后一个,我可以检查 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath ,但我想要的是如果用户在最后一个单元格上滑动,则不会出现任何内容(而在其他单元格中会出现文本“删除”)。

我已经尝试过这个

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row != ([array count]-1)) {
   return @"delete";
 }
 else {
     NSString *a;
     return a;
  }
}

,但当然它不起作用(应用程序崩溃)。 我已经尝试过

return @"";

,但出现了红色按钮(没有文字)!

你有什么建议我? 谢谢!

I want to add in my tableview the possibility to "swipe to delete", but I don't want this for the last cell of the table!

I can check in - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath if the indexPath.row is the last one, but what I want is that if the user swipes on the last cell, nothing will appear (while in the others cells appears the text "delete").

I've tried this

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row != ([array count]-1)) {
   return @"delete";
 }
 else {
     NSString *a;
     return a;
  }
}

but of course it doesn't works (the app crashes).
I've tried with

return @"";

but the red button appears (with no text)!

What do you suggest me?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

宛菡 2024-12-04 21:03:42

尝试

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath row] == [tableView numberOfRowsInSection:[indexPath section]] - 1)
    {
        return UITableViewCellEditingStyleNone;
    }

    return UITableViewCellEditingStyleDelete;
}

Try

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath row] == [tableView numberOfRowsInSection:[indexPath section]] - 1)
    {
        return UITableViewCellEditingStyleNone;
    }

    return UITableViewCellEditingStyleDelete;
}
三生路 2024-12-04 21:03:42

由于您返回未初始化的指针,应用程序崩溃。但即便如此,你还是做错了;-)

你想实现 tableView:editingStyleForRowAtIndexPath: 并为除最后一个单元格之外的所有单元格返回 UITableViewCellEditingStyleDelete 。您需要为最后一个单元格返回 UITableViewCellEditingStyleNone 以防止其被删除。

The app crashes since you return an uninitialized pointer. But even then, you're doing it wrong ;-)

You want to implement tableView:editingStyleForRowAtIndexPath: and return UITableViewCellEditingStyleDelete for all cells, except for the last. You need to return UITableViewCellEditingStyleNone for the last cell to prevent that it can be deleted.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文