gpt4 book ai didi

ios - UITableView Cell visibleCells数组出错?

转载 作者:行者123 更新时间:2023-11-29 12:48:03 24 4
gpt4 key购买 nike

我在 ViewController 中创建了一个 UITableView。当viewdidload时,我通过

注册了单元格
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"tableViewCell"];

这是 UITableview delegatedatasource 中的代码

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 25;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"visible cell: %d",[[self.tableView visibleCells] count]);
static NSString* CellIdentifier = @"tableViewCell";

UITableViewCell* cell = cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
NSLog(@"nil -> create new");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
else{
NSLog(@"not nil reuse cell success");
}
[cell.textLabel setText:[NSString stringWithFormat:@"%d",indexPath.row]];

return cell;

}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"will display: %d",indexPath.row);
}

结果如下,当我向下滚动表格 View 时,会显示这些单元格的日志显示单元格。但是当我滚动到底部并滚动到顶部时。 willDisplayCell 中的登录未显示。并且可见单元格的数量不断增加到 25。因此 tableview 似乎认为所有 25 个单元格仍然可见。但在屏幕上一次只会显示 5-6 个单元格。

我猜可能是静态cell和动态cell的问题?我想我正在使用动态的。因为从 dequeueReusableCellWithIdentifier 得到的单元格总是不为零。

这是输出

2014-04-18 10:51:22.101 [5834:60b] visible cell: 6
2014-04-18 10:51:22.103 [5834:60b] not nil reuse cell success
2014-04-18 10:51:22.104 [5834:60b] will display: 6
2014-04-18 10:51:22.401 [5834:60b] visible cell: 7
2014-04-18 10:51:22.403 [5834:60b] not nil reuse cell success
2014-04-18 10:51:22.405 [5834:60b] will display: 7
2014-04-18 10:51:22.767 [5834:60b] visible cell: 8
2014-04-18 10:51:22.769 [5834:60b] not nil reuse cell success
2014-04-18 10:51:22.771 [5834:60b] will display: 8
2014-04-18 10:51:23.451 [5834:60b] visible cell: 9
2014-04-18 10:51:23.453 [5834:60b] not nil reuse cell success
2014-04-18 10:51:23.455 [5834:60b] will display: 9
2014-04-18 10:51:23.551 [5834:60b] visible cell: 10
2014-04-18 10:51:23.552 [5834:60b] not nil reuse cell success
2014-04-18 10:51:23.554 [5834:60b] will display: 10
2014-04-18 10:51:23.768 [5834:60b] visible cell: 11
2014-04-18 10:51:23.769 [5834:60b] not nil reuse cell success
2014-04-18 10:51:23.772 [5834:60b] will display: 11
2014-04-18 10:51:24.067 [5834:60b] visible cell: 12
2014-04-18 10:51:24.069 [5834:60b] not nil reuse cell success

最佳答案

- (NSArray *)indexPathsForVisibleRows

例如:

NSArray indexArray = [self.tableView indexPathsForVisibleRows];

关于ios - UITableView Cell visibleCells数组出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146717/

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