gpt4 book ai didi

ios - 重用 cellViews,而不是清除

转载 作者:行者123 更新时间:2023-12-01 19:12:43 25 4
gpt4 key购买 nike

我注意到我的 cellViews 没有清除。意思是,当我向上和向下滚动时, subview 不断在刚刚被重用的 cellView 上加起来......我做错了什么?

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

static NSString* cellIdentifier=@"cell";

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
}

UIImageView cellView = [[UIImageView alloc] initWithFrame:rectCellFrame];

NSError* error=nil;
NSData* imageData = [NSData dataWithContentsOfURL:imageArray[indexPath.row] options:NSDataReadingUncached error:&error];

UIImage* theImage= [UIImage ImageWithData:imageData];

[cellView setImage:theImage];

[cell addSubView:cellView];

.
.
.
.

[cell addSubView:moreViews];

}

最佳答案

dequeueReusableCellWithIdentifier:返回一个单元格(而不是 nil),它是您之前在 tableView:cellForRowAtIndexPath: 中创建的单元格方法。首次创建时添加到该单元格的每个 subview 仍在其中。如果从 dequeueReusableCellWithIdentifier: 获取单元格时添加更多 subview ,您将在单元格中拥有额外的 subview 。

您的 tableView:cellForRowAtIndexPath:方法应具有以下基本结构:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *const kIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:kIdentifier];

// code here to add subviews to cell.contentView
}

// code here to configure those subviews to display the content for indexPath, e.g.
// set the image of image views and the text of labels.

return cell;
}

棘手的部分是在 dequeueReusableCellWithIdentifier: 返回单元格时访问 subview 以设置其内容.看看 “Programmatically Adding Subviews to a Cell’s Content View” in the Table View Programming Guide for iOS ,它解释了如何使用 View 标签来访问 subview 。

关于ios - 重用 cellViews,而不是清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369807/

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