gpt4 book ai didi

ios - UITableView 的单元格不能用作设置

转载 作者:行者123 更新时间:2023-11-28 22:08:53 25 4
gpt4 key购买 nike

我将 uitableview 的单元格设置如下

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

if (indexPath.row == 0) {
cell.backgroundColor = [UIColor redColor];
UIImageView *bigphoto = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
bigphoto.image = [UIImage imageNamed:@"bigphoto.png"];
[cell addSubview:bigphoto];
}
else {
cell.backgroundColor = [UIColor blackColor];
cell.myphoto.image = [UIImage imageNamed:@"myphoto.png"];
cell.phototime.text = @"2014-03-01";
}

return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
return 320;
}
return 220;
}

我希望第一个单元格(indexPath.row = 0)与其他单元格不同,第一个单元格设置为大照片并且其背景颜色为红色(其UI设计),其他单元格为黑色背景的myphoto.png(使用 DetailCell 的 UI Desigin),但代码运行结果错误,

第一个单元格(indexPath.row = 0)是正确的,但是 indexPath.row = 3 或 6 或 9.. 与 indexPath.row = 0 相同,不像 indexPath.row = 1 或 2 或 4 ...

那我该如何解决呢?谢谢

最佳答案

单元格正在被重用,您应该为具有不同表示的单元格使用不同的单元格标识符。这应该有效:

- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *CellIdentifier;
DetailCell *cell = nil;
if (indexPath.row == 0) {
cellIdentifier = @"Cell0";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[DetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.backgroundColor = [UIColor redColor];
UIImageView *bigphoto = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
bighoto.tag = 1;
[cell addSubview:bigphoto];
}
UIImageView *bigphoto = (UIImageView *)[cell viewWithTag:1];
bigphoto.image = [UIImage imageNamed:@"bigphoto.png"];
}
else {
cellIdentifier = @"Cell1";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[DetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.backgroundColor = [UIColor blackColor];
}
cell.myphoto.image = [UIImage imageNamed:@"myphoto.png"];
cell.phototime.text = @"2014-03-01";
}
return cell;
}

关于ios - UITableView 的单元格不能用作设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345014/

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