gpt4 book ai didi

iphone - 单元格图像仅在滚动后出现

转载 作者:行者123 更新时间:2023-11-29 13:31:07 24 4
gpt4 key购买 nike

我有一个 UITableView,其方法 cellForRowAtIndexPath 如下所示,问题是 cellImage 仅在完全向上滚动(因此没有行可见)然后释放后出现。奇怪的是,我在另一个类中有相同的代码用于单独的表格 View ,并且图像看起来很好。有什么想法吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryNone;
}

[cell.textLabel setText:[items objectAtIndex:indexPath.row]];
[cell.textLabel setFont:[UIFont fontWithName:@"Helvetica" size:15.0f]];
[cell.textLabel setTextColor:[UIColor whiteColor]];
[cell setBackgroundColor:[[UIColor alloc] initWithRed:117.0/255.0 green:118.0/255.0 blue:121.0/255.0 alpha:1.0]];
[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundView:[[UIView alloc] init]];
[self.view setBackgroundColor:[[UIColor alloc] initWithRed:167.0/255.0 green:169.0/255.0 blue:172.0/255.0 alpha:1.0]];
UIImageView *cellImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"next@2x.png"]];
[cell addSubview:cellImage];
[cellImage setFrame:CGRectMake(0, 0, 26, 24)];
[cellImage setCenter:CGPointMake(cell.frame.size.width - 30, cell.frame.size.height/2)];

return cell;
}

最佳答案

[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundView:[[UIView alloc] init]];

这些行不属于该方法。每次滚动每个单元格时都会调用这些方法。创建 TableView 后,将它们放入 viewDidLoad 方法中。

UIImageView *cellImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"next@2x.png"]];
[cell addSubview:cellImage];

这些行确实非常BAD,可能会导致内存泄漏。

每次滚动表格 View 时,都会向单元格添加一个 ImageView 。 TableView 重复使用单元格。这意味着当单元格被重用时,您将一个新的 ImageView 添加到单元格。在你滚动更多次后,你在每个单元格上都有 x 倍的 ImageView ,除非你在代码中的某处删除它们。

另一点是,如果你想将一些 subview 添加到单元格(例如,在单元格的 init 方法中),然后像这样将它添加到单元格的 contenview

[cell.contentView addSubview:someView];

否则您的 subview 可能会与附属 View 重叠。调整单元格大小时可能会遇到问题。

我建议您阅读以下链接中的指南: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW1

关于iphone - 单元格图像仅在滚动后出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882666/

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