UITableViewCellEditingStyle 同时插入和删除

发布于 2024-11-09 04:16:07 字数 182 浏览 0 评论 0原文

我正在研究 iPhone 编程的书说我可以同时混合使用 UITableViewCellEditingStyle-Insert/Delete 。但我不知道该怎么做。有一个 UITableViewdataSource 方法返回类型为 UITableViewCellEditingStyle。但是如果我只能返回一件事(插入或删除),我如何同时返回两种样式。

the book I'm studying to program for iPhone says I can have a mixture of both UITableViewCellEditingStyle-Insert/Delete at the same time. But I couldn't figure out how to do it.There's a UITableViewdataSource method return type of which is UITableViewCellEditingStyle.But how do I return both style simultanously if I can return just one thing-either insert or delete.

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

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

发布评论

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

评论(2

眼睛会笑 2024-11-16 04:16:07

如果我理解正确,您希望通过删除和添加新单元格(以及可选的动画更改)来更新您的表格视图。您需要将调用嵌套在 beginUpdates 块中:

[tableView beginUpdates]
[tableView deleteRowsAtIndexPaths...
[tableView insertRowsAtIndexPaths...
[tableView commitUpdates]

您需要确保您的 UITableViewDataSourceDelegate 方法反映当 commitUpdates: 被调用时会发生变化。

If I'm understanding correctly, you want to update your tableview by both deleting and adding a new cell (and optionally animating that change).You need to nest your calls inside a beginUpdates block:

[tableView beginUpdates]
[tableView deleteRowsAtIndexPaths...
[tableView insertRowsAtIndexPaths...
[tableView commitUpdates]

You need to make sure that your UITableViewDataSourceDelegate methods reflect that change when commitUpdates: gets called.

清引 2024-11-16 04:16:07

UITableViewCellEditingStyle 是一个枚举,所以我认为它不能同时插入和删除。这是一个可能对您有帮助的答案:

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {
        return UITableViewCellEditingStyleInsert;
    }
    else
    {
        return UITableViewCellEditingStyleDelete;
    }
}

UITableViewCellEditingStyle is a enum, so I don't think it can insert and delete at the same time. Here is an answer that might help you:

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {
        return UITableViewCellEditingStyleInsert;
    }
    else
    {
        return UITableViewCellEditingStyleDelete;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文