gpt4 book ai didi

ios - 使用带有 UIViewController 的 Xcode 5 停止 [tableView loadData] 取消选择行

转载 作者:行者123 更新时间:2023-11-28 22:03:27 25 4
gpt4 key购买 nike

这是我的程序。我想创建一个显示数字的简单项目列表。当点击行时,数字将增加一。

编辑:更改 didSelectRowAtIndexPath 函数中一行的 UI 是否合适?

我通过 Storyboard在 Xcode 5 中创建了一个 UIViewController,它做的一切都是正确的,除了我似乎无法阻止 [tableView reloadData] 在之后取消选择我的行被窃听。具体来说,我希望该行变为灰色,然后正常淡出。

我曾尝试选择该行,然后在调用 [tableView reloadData] 后以编程方式取消选择该行,但它不起作用。

我知道如果我使用的是 UITableViewController,我可以调用 [self setClearsSelectionOnViewWillAppear:NO],但我没有。

我可以为 UIViewController 设置类似的属性吗?

代码如下:

    [tableView beginUpdates];
[counts replaceObjectAtIndex: row withObject: [NSNumber numberWithInt:newCount]];
[tableView reloadData];
[tableView endUpdates];

我觉得我可能没有描述正在发生的事情。我有一行使用 UITableViewCellStyle2,它在左侧和右侧显示一个标签。右对齐的文本是一个数字,每次点击该行时该数字都会增加。简单地更新数据结构并不能解决问题。我需要在视觉上更新它。我不需要或不想替换该行,除非我也有。我只想更新右对齐的文本字段并防止在没有动画的情况下立即取消选择该行。我可以做其中之一,但不能同时做。

有没有办法只更新右对齐的文本字段,同时仍然忠于 MVC 模型?

最佳答案

从代码中删除 [tableView reloadData];。不应在插入或删除行的方法中调用它,尤其是在通过调用 beginUpdatesendUpdates 实现的动画 block 中。

调用reloadData 方法重新加载用于构建表格的所有数据,包括单元格、节页眉和页脚、索引数组等。为了提高效率, TableView 只重新显示那些可见的行。如果表因重新加载而缩小,它会调整偏移量。当 TableView 的委托(delegate)或数据源希望 TableView 完全重新加载其数据时调用此方法。

[tableView beginUpdates];
[counts replaceObjectAtIndex: row withObject: [NSNumber numberWithInt:newCount]];
[tableView endUpdates];

参见 developer.apple section - reloadData

如果你想在重新加载后保留选择,简单的方法是

NSIndexPath *selectedRowIndexPath = [tableView indexPathForSelectedRow];
[tableView reloadData];
[tableView selectRowAtIndexPath:selectedRowIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

关于ios - 使用带有 UIViewController 的 Xcode 5 停止 [tableView loadData] 取消选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24546299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com