gpt4 book ai didi

ios - reloadData 后调用 numberOfRowsInSection 的次数过多

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:09 25 4
gpt4 key购买 nike

我有一个函数可以在表格 View 中打开所有部分。

很奇怪,当 [self.tvChoices reloadData]; 被调用时,我得到了

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 

每个部分 (1300) 都需要调用,而不仅仅是可见部分。

有什么想法吗?

(也许我应该在 reloadData 之前清理 tableview,但我很好奇为什么会出现这种行为

-(IBAction)multipleTap:(UIGestureRecognizer *)sender {
NSLog(@"--[%s:%d]",__PRETTY_FUNCTION__,__LINE__);
NSNumber *value=self.mybooleans[sender.view.tag];
[self reset_Sections_BooleansTo:@(!value.boolValue)];
[self.tvChoices reloadData]; <--
}

.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

-- 即使是不可见的部分也会被调用

最佳答案

这种行为是有道理的,因为 TableView 需要估计滚动指示器的大小。为此,它需要知道 TableView 中总共有多少行,因此它需要询问每个部分中有多少行。

如果这不会对您的应用产生重大性能影响,请不要担心。担心一个方法被调用了多少次并试图减少它而没有显着的性能提升是严重的过早优化,很少值得为此工作和它导致的错误。

如果像某些评论者指出的那样影响性能,您可以查看 - reloadRowsAtIndexPaths:withRowAnimation:- reloadSections:withRowAnimation: 以仅重新加载需要更新的行/部分。

关于ios - reloadData 后调用 numberOfRowsInSection 的次数过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337727/

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