Several Custom UITableViewCells in one NIB - how to refer to in code?
I'm creating custom UITableViewCells using the approach outlined on this page:
http://icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/
So my cellForRowAtIndexPath code looks a bit like this:
static NSString *CellIdentifier = @"CustomCell";
TableCellWithLogo *cell = (TableCellWithLogo *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"TableCells" owner:nil options:nil];
for (id currentObject in nibObjects)
{
if ([currentObject isKindOfClass:[TableCellWithLogo class]] )
{
cell = (TableCellWithLogo *)currentObject;
}
}
}
cell.customTextLabel.text = [tableArray objectAtIndex:indexPath.row];
return cell;
Now, the table I'm creating looks like a stylized version of the grouped tableview style, with drop-shadows etc. So it needs four possible styles of table (top, center, bottom .. and top+bottom for when only a single cell is showing).
I'm having trouble working out how to put all of these table cells into one nib, and then refer to them. At the moment I have a nib with a UITableViewCell whose class is 'TableCellWithLogo'. This class has all the relevant IBOutlets. If I put several UITableViewCells in the nib (all of TableCellWithLogo class), how would I be able to differentiate between them in code? You can see in the example above I'm finding out the class:
if ([currentObject isKindOfClass:[TableCellWithLogo class]] )
..but all the classes would b开发者_C百科e the same, so I'm not sure how to differentiate?
Create one empty nib and add table view cells to it. Also, for each of them create a corresponding class and assign the relevant class for each of them (see the screenshot).
Then, in the cellForRowAtIndexPath you'll need to create different cells based on indexPath.row
精彩评论