我正在创建一个包含两个部分的uitableview,section == 0有5行,section == 1有1行。
我还在objective-c类中声明了几个函数,我想将它们挂钩到五行中的每一行。但是我不知道如何实现这一点。
我认为它就像是
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
cell.selectionStyle = UITableViewCellSelectionStyleNone;
//---------- In here put a bunch of IF statments, declaring each cell? and linking it to
//---------- the function I have declared in the objective-c class
return cell;
}
答案 0 :(得分:1)
通常,单元格设置在tableView:cellForRowAtIndexPath:
中。确定点击单元格时调用的函数通常在tableView:didSelectRowAtIndexPath
中完成。
在tableView:cellForRowAtIndexPath:
中设置单元格时,您可以使用indexPath
指定部分和行,如下所示:
if(indexPath.section == 0){
if(indexPath.row == 0){
// setup this cell...
}else if(indexPath.row == 1){
}// ...
}else if(indexPath.section == 1){
if(indexPath.row == 0){
}else if(indexPath.row == 1){
}// ...
}
在确定用户点击每个单元格时调用哪个函数时,在tableView:didSelectRowAtIndexPath
中执行类似操作。可以找到Apple的相关文档here。
答案 1 :(得分:0)
通常,此函数将通过从数组,数据库或其他一些索引集合中提取数据来配置单元格:
if ([indexPath section] == 0) {
[[cell textLabel] setText:[sectionOneValues objectAtIndex:[indexPath row]]];
}
else if ([indexPath section] == 0) {
[[cell textLabel] setText:[sectionTwoValues objectAtIndex:[indexPath row]]];
}
在你的情况下,听起来你想要“挂钩”第0节中5行的其他一些函数,所以除了在if子句中使用sectionOnValues数组之外你还要做其他事情。如果不知道你对这些挂钩的函数的意义,那就更难具体了。
答案 2 :(得分:0)
取决于,所有细胞是否相等,但只改变其内容?在那种情况下,你是对的。
另一方面,如果您打算在单元格中添加更多标签,图像或其他内容,那么,对于每个不同的行,您必须调整单元格的创建方式,因此,必须添加新的CellIdentifiers避免混合单元格,并更改if (cell == nil) {}
内的代码以配置每个单元格设计。