【发布时间】:2018-03-30 06:28:05
【问题描述】:
我创建了 tableview 和两个不同的自定义单元格。 假设cell1和cell2。
现在我想像下面的模式在表格视图中添加单元格
单元格1
单元格1
单元格1
单元格2
单元格1
单元格1
单元格1
单元格2
等等,我有显示在 cell1 中的数据计数,但我不知道 cell2 是否计数,因为它应该是动态计数,我的意思是说在每 3 个 cell1 数据之后,第 4 个单元格将是 cell2
这是我的表格视图代码
#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;
}
}
【问题讨论】:
-
可能通过数据而不是行来检测。例如:arrayRecipeCategoryNAME[indexPath.row].cell2 == "some data",然后返回 HomeTableViewCell2 否则相反,这样做的好处是有一天服务器端改变了逻辑.你赢了。
-
首先它应该是
if (indexPath.row + 1) % 3 == 0,因为0 % N总是0。但问题是你的arrayRecipeCategoryNAME,它只适用于cell1。你需要尝试不同的方法 -
你可以这样做......
if ((indexPath.row+1) % 4 == 0 { // return cell 2 } else{ // return cell 1 } -
@staticVoidMan 是的,我不知道 cell2 的计数,因为它完全取决于能被 3 整除的 cell1 计数,这就是我现在卡住的地方
-
@TejasPatel
cell2什么时候出现?为什么?它是链接到自己的数据源还是从arrayRecipeCategoryNAME获取?它像标题吗?
标签: ios objective-c uitableview