gpt4 book ai didi

iphone - UITableView 中 2 种不同类型的自定义 UITableViewCells

转载 作者:行者123 更新时间:2023-12-03 18:10:49 26 4
gpt4 key购买 nike

在我的 UITableView 中,我想为 rss feed 的第一个新闻设置一个自定义 tableViewCell(可以说是类型 A),并为第二个、第三个等其他新闻设置一个自定义 tableViewCell(trype B),问题是为第一个新闻创建的自定义 tableViewCell(trype A) 被重用,但奇怪的是,第一次使用 customViewCell(type A) 和第二次出现相同类型的 customViewCell 之间的行数不相等。

我的 cellForRowAtIndexPath 它看起来像这样。

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

int feedIndex = [indexPath indexAtPosition:[indexPath length] - 1];
Feed *item = [[[[self selectedButton] category] feedsList] objectAtIndex:feedIndex + 1];
static NSString *CellIdentifier = @"Cell";

if(feedIndex == 0){
MainArticleTableViewCell *cell = (MainArticleTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
cell = [[[MainArticleTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
[[[cell subviews] objectAtIndex:0] setTag:111];
}

cell.feed = item;

return cell;

}
else{
NewsTableViewCell *cell = (NewsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
cell = [[[NewsTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier orientation:currentOrientation] autorelease];
[[[cell subviews] objectAtIndex:0] setTag:111];
}

cell.feed = item;

return cell;

}
return nil;
}

两种类型的单元格具有不同的高度,且设置正确。有人可以为我指明如何使 A 型自定义单元仅在第一条新闻中出现(不被重复使用)的正确方向吗?谢谢

最佳答案

您应该为两种样式的单元格创建不同的单元格标识符:

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

int feedIndex = [indexPath indexAtPosition:[indexPath length] - 1];
Feed *item = [[[[self selectedButton] category] feedsList] objectAtIndex:feedIndex + 1];

static NSString *CellIdentifier1 = @"Cell1";
static NSString *CellIdentifier2 = @"Cell2";

if(feedIndex == 0) {

MainArticleTableViewCell *cell = (MainArticleTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];

if (cell == nil) {
cell = [[[MainArticleTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier1] autorelease];
[[[cell subviews] objectAtIndex:0] setTag:111];
}

cell.feed = item;

return cell;
}
else {
NewsTableViewCell *cell = (NewsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];

if (cell == nil) {
cell = [[[NewsTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier2 orientation:currentOrientation] autorelease];
[[[cell subviews] objectAtIndex:0] setTag:111];
}

cell.feed = item;

return cell;
}

return nil;
}

关于iphone - UITableView 中 2 种不同类型的自定义 UITableViewCells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405688/

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