gpt4 book ai didi

ios - 为什么在 iOS 中实现评级星级后 TableView 变慢?

转载 作者:行者123 更新时间:2023-11-28 21:51:07 26 4
gpt4 key购买 nike

我正在尝试通过使用 kDRATING VIEW 来实现评级星级。我在 cellForRowAtIndexpath 方法中使用了以下代码,但它会导致我的应用程序变慢。如果它尝试在 viewdidload 方法中分配和初始化它,那么当我上下滚动时,星星会波动。请在这方面提供帮助

  self.rating = [[KDRatingView alloc] initWithFrame:CGRectMake(0, 0, 60,20)];

[self.rating rateKDRatingView:2.80 outOf:3.0];

[cell.rating addSubview:self.rating ];
return cell;

最佳答案

听起来您需要研究 UITableViewCell 的重用,因为当您将 UITableViewCell 滚动出屏幕时,它会再次调用 cellForRowAtIndexPath 以在它返回 View 时重新制作此单元格,这可能会导致闪烁和内存消耗。

您正在将 KDRatingView 添加到单元格的 rating View 中,所以我猜您有一个自定义单元格,那么为什么不使用 KDRatingView 在自定义单元格中,并在需要时更新它的值。

尝试使用此解决方案并重复使用一些单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
static NSString *CellIdentifier = @"RatingCell";
RatingCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
// initialisation code
cell = [RatingCell new];
}
// setting code
[cell setRatingViewValue:2.8 outOf:3.0];
}

这样它只会创建一次单元格,因此不会减慢您的应用程序。然后,每次重新创建单元格时,它只会更新单元格评级(以及您需要设置的任何其他内容)。

然后您只需要在您的自定义单元格中实现 setRatingViewValue:outOf: 方法来更新您需要在自定义单元格中添加和定位的 KDRatingView初始化。

关于ios - 为什么在 iOS 中实现评级星级后 TableView 变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28297711/

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