我正在尝试使用tableview
和parent
child
创建单个accordion cells
。对于这个手风琴细胞,我已经将两个单元格创建为单个tableview storyboard
,并为两个单元格提供了单独的Identifier
和类,并对下面的方法进行了一些逻辑处理。现在的问题是我需要访问自定义单元格类,我已将outlets
单元格storyboard UI
连接到自定义类,但我无法将该UI访问到下面的方法中。
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
//cell = [[[NSBundle mainBundle] loadNibNamed:@"CCell" owner:self options:nil] objectAtIndex:1];
cell = [tableView dequeueReusableCellWithIdentifier:@"parentCell"];
}
NSDictionary *dicForIndex = [self.arForTable objectAtIndex:indexPath.row];
if ([[dicForIndex valueForKey:@"isChild"] boolValue] == YES) {
//cell = [[[NSBundle mainBundle] loadNibNamed:@"CCell" owner:self options:nil] objectAtIndex:0];
cell = [tableView dequeueReusableCellWithIdentifier:@"childCell"];
UILabel *labelName = (UILabel*)[cell viewWithTag:1001];
labelName.text = [dicForIndex valueForKey:@"name"];
}else{
UILabel *labelName = (UILabel*)[cell viewWithTag:1001];
labelName.text = [dicForIndex valueForKey:@"name"];
}
[cell setIndentationLevel:[[[self.arForTable objectAtIndex:indexPath.row] valueForKey:@"level"] intValue]];
return cell;
}
答案 0 :(得分:1)
你可以这样做:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [tableView dequeueReusableCellWithIdentifier:@"parentCell"];
parenttableviewCell *cellParent = (parenttableviewCell *)cell;
// custom something ...
cellParent.labelA.text = @"A";
}
...
if ...
{
cell = [tableView dequeueReusableCellWithIdentifier:@"childCell"];
childtableviewCell *cellchild = (childtableviewCell *)cell;
// custom something ...
}
return cell;