gpt4 book ai didi

objective-c - 可重复使用的 UITableViewCells 重复内容

转载 作者:行者123 更新时间:2023-11-28 20:42:49 25 4
gpt4 key购买 nike

我有一个非常普遍的问题,我不知道如何自己解决,即使在阅读了一堆类似的帖子之后也是如此,因为让我的单元格不可重用不是一个选项 (应用程序的运行速度大大降低)。

问题

当我有 6 个或更多单元格(最多 16 个)时,当我滚动到前 5 个单元格的内容时,它们开始出现在所有其他单元格中。

虽然我使用的是可重复使用的单元格,但为什么我的单元格内容没有用存储在我的 NSMutableArray 中的新数据刷新?

代码

- (UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath {

WorldClockTableViewCell *worldClockCell = (WorldClockTableViewCell*)[tableView dequeueReusableCellWithIdentifier:kCellID];
if(worldClockCell == nil) {

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"WorldClockTableViewCell" owner:self options:nil];
worldClockCell = [topLevelObjects objectAtIndex:0];

/*
Set Scrolling to OFF by default.
User can scroll when table is in edit mode.
*/
[worldClockCell.scrollView setScrollEnabled:NO];

// Set Digital Clock in timeLabel
[self setDigitalClockInLabel:worldClockCell inRow:indexPath.row];

// Set Analog Clock Carousel in ScrollView in every cell.
[self setAnalogClocksInScrollView:worldClockCell inRow:indexPath.row];

// Scroll to User's Preferred Clock (if this is the first launch of WorldClockTableViewController)
if([[shouldAutoScrollArray objectAtIndex:indexPath.row] boolValue] == YES) {

[self scrollToUsersPreferredClock:worldClockCell atRow:indexPath.row];
[shouldAutoScrollArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:NO]];

}

// Add City Name to cityLabel in every cell
[worldClockCell buildFormattedCityName:[model.timeZoneCityNames objectAtIndex:indexPath.row]];

// Make sure new clocks created while in 'edit' mode don't scroll out of the cell
worldClockCell.scrollView.frame = worldClockCell.scrollViewFrame;


}

return worldClockCell;
}

最佳答案

只有当它创建了一个新单元时,您才进行所有单元配置,如果它使单元出队则不会。把一切都拉出来

if(worldClockCell == nil)

除了

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"WorldClockTableViewCell" owner:self options:nil];
worldClockCell = [topLevelObjects objectAtIndex:0];

除非您真的只需要在创建单元格时执行一次(而不是每次重新配置以显示新数据时)。

关于objective-c - 可重复使用的 UITableViewCells 重复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744378/

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