gpt4 book ai didi

ios - 如何在特定的 indexpath.row 上显示自定义 tableviewcell

转载 作者:行者123 更新时间:2023-11-29 11:35:35 27 4
gpt4 key购买 nike

我创建了 tableview 和两个不同的自定义单元格。假设 cell1 和 cell2。

现在我想像下面的模式一样在 tableview 中添加单元格

单元格1

单元格1

单元格1

单元格2

单元格1

单元格1

单元格1

单元格2

等等,我有 cell1 中显示的数据计数,但我不知道 cell2 是否计数,因为它应该是动态计数,我的意思是说在每 3 个 cell1 数据之后,第 4 个单元格将是 cell2

这是我的tableview代码

#pragma mark - TableView Delegate Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section{
return [arrayRecipeCategoryNAME count];
//return 22;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath{
return 175;
}

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

if((indexPath.row % 3) == 0){
HomeTableViewCell2 *cell2 = [tableView dequeueReusableCellWithIdentifier:@"Cell2" forIndexPath:indexPath];
return cell2;
}
else{
HomeTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.lblRecipeCategory.text = [arrayRecipeCategoryNAME objectAtIndex:indexPath.row];
cell.lblRecipeCategory.font = FONT_COMFORTAA_BOLD(28);
cell.imgRecipeCategory.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[arrayRecipeCategoryImage objectAtIndex:indexPath.row]]];
return cell;
}
}

最佳答案

首先,必须调整 numberOfRowsInSection: 中返回的行数以显示额外的单元格。
然后在 cellForRowAtIndexPath: 中,您需要调整数组索引以匹配用于数据源数组 arrayRecipeCategoryNAMEarrayRecipeCategoryImage 的正确序列

以下将适用于您当前的设计:

#define INTERVAL 4

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section {
NSInteger count = arrayRecipeCategoryNAME.count;

NSInteger numberOfUnmappedRows = count / INTERVAL;
NSInteger totalNumberOfRows = (count + numberOfUnmappedRows);

return totalNumberOfRows;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(((indexPath.row + 1) % INTERVAL) == 0) {
HomeTableViewCell2 *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell2" forIndexPath:indexPath];
return cell;
}
else {
NSInteger numberOfUnmappedCellsBeforeCurrent = indexPath.row / INTERVAL;

//Use following as the index for your datasource arrays
NSInteger translatedIndex = indexPath.row - numberOfUnmappedCellsBeforeCurrent;

HomeTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

cell.lblRecipeCategory.text = arrayRecipeCategoryNAME[translatedIndex];
//...
cell.imgRecipeCategory.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@", arrayRecipeCategoryImage[translatedIndex]]];

return cell;
}
}

关于ios - 如何在特定的 indexpath.row 上显示自定义 tableviewcell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569525/

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