gpt4 book ai didi

iphone - 使用 UITableViewCell 使 UIView 出队

转载 作者:行者123 更新时间:2023-12-03 20:42:56 25 4
gpt4 key购买 nike

在正常情况下使用 UITableView 时,我有重用旧单元格的标准代码:

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

但是,我注意到,当我向单元格添加 subview 时,它们不会被删除,并且每次都会添加一个新 View 。我下面有一个例子可以完美地演示它:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";

UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];

UILabel *label = [[UILabel alloc] init];
label.text = @"HELLO";
label.frame = CGRectMake(arc4random() % 50, -1, 286, 45);
label.backgroundColor = [UIColor clearColor];

// Add views
[cell addSubview:label];

return cell;
}

我需要一些代码来再次重用我的标签,就像重用单元格一样。我该怎么办?

谢谢

最佳答案

只有在创建新单元格时才必须添加 subview 。如果您要出队,则 subview 已经存在,不应重新创建。

你的方法应该是:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
static NSString *cellIdentifier = @"Cell";

UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];
UILabel *label;
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
label = [[UILabel alloc] init];
label.tag = 1;
// Add views
[cell addSubview:label];
}
else
{
// Label will already exist, get a pointer to it
label = [cell viewWithTag:1];
}

// Now set properties on the subview that are unique to each cell
label.text = @"HELLO";
label.frame = CGRectMake(arc4random() % 50, -1, 286, 45);
label.backgroundColor = [UIColor clearColor];

return cell;
}

请注意仅当单元格为零时才创建标签。否则,使用标签找到它。

关于iphone - 使用 UITableViewCell 使 UIView 出队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394524/

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