gpt4 book ai didi

ios - 无法刷新 UITableView 内的图片

转载 作者:行者123 更新时间:2023-11-29 04:07:49 25 4
gpt4 key购买 nike

我正在尝试更改桌面 View 中的图片。我在另一种方法(正在启动)中使用 [myTableView reloadData]; 来刷新我的 TableView ,我可以看到 tableview 中的其他元素正在刷新,但图像保持不变。我错过了什么?

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *lblName;
UIImageView *checkMark = [[UIImageView alloc] initWithFrame:CGRectMake(230, 0, 30, 50)];
if (cell == nil) {

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(10, 1, 260, 70)];
backgroundView.backgroundColor = UIColorFromRGB(0x000000, 0.3);
backgroundView.userInteractionEnabled = YES;

checkMark.image = [UIImage imageNamed:@"V.png"];
checkMark.contentMode = UIViewContentModeCenter;
checkMark.backgroundColor = [UIColor clearColor];
[backgroundView addSubview:checkMark];
[checkMark release];

[cell.contentView addSubview:backgroundView];
[backgroundView release];
}
if (something)
{
checkMark.image = [UIImage imageNamed:@"halfleft.png"];
NSLog(@"something was done");
}
return cell;

}

最佳答案

reloadData 正确调用此方法。

您的问题很简单,在单元格被“重用”的情况下,“checkMark”上的指​​针不好。做这样的事情:

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIView *backgroundView;
UIImageView *checkMark;
if (cell == nil) {

checkMark = [[UIImageView alloc] initWithFrame:CGRectMake(230, 0, 30, 50)];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
backgroundView = [[UIView alloc] initWithFrame:CGRectMake(10, 1, 260, 70)];
backgroundView.backgroundColor = UIColorFromRGB(0x000000, 0.3);
backgroundView.userInteractionEnabled = YES;
backgroundView.tag = 555;

checkMark.image = [UIImage imageNamed:@"V.png"];
checkMark.contentMode = UIViewContentModeCenter;
checkMark.backgroundColor = [UIColor clearColor];
checkMark.tag = 666;
[backgroundView addSubview:checkMark];
[checkMark release];

[cell.contentView addSubview:backgroundView];
[backgroundView release];
} else {
backgroundView = (UIImageView *)[cell.contentView viewWithTag:555];
checkMark = (UIImageView *)[backgroundView viewWithTag:666];
}
if (something)
{
checkMark.image = [UIImage imageNamed:@"halfleft.png"];
NSLog(@"something was done");
}
return cell;

}

但是,您应该做一些更简单的事情(如果可能的话,减少 subview 。或者子类 UITableViewCell 以在复选标记上有一个指针;-)

关于ios - 无法刷新 UITableView 内的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14919759/

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