您可以创建一个包含一个UILable,UISwitch和UIImageview的自定义单元格...
现在根据indexpath.row根据需要显示和隐藏此子视图。
试试这段代码。在cellFotRowAtIndexPath
中添加此代码
NSArray *subviews = [[NSArray alloc] initWithArray:cell.contentView.subviews];
for (UIView *subview in subviews)
{
if([subview isKindOfClass:[UIView class]])
[subview removeFromSuperview];
else if([subview isKindOfClass:[UIImageView class]])
[subview removeFromSuperview];
else if([subview isKindOfClass:[UILabel class]])
[subview removeFromSuperview];
else if([subview isKindOfClass:[UISwitch class]])
[subview removeFromSuperview];
}
[subviews release];
您需要做的是拥有几个不同的UITableViewCell
实例,具体取决于您拥有多少种不同类型的表格视图单元格。
每个都分配了一个重用标识符。
然后,在cellForRowAtIndexPath
中,根据indexPath
的部分或行,您将相应的单元格出列,设置任何数据,然后返回。
因此,例如,假设您有三种类型的单元格用于切换,图像和其他类型,您将按如下方式出列:
static NSString *kCellReuseIdentifierSwitch = @"SwitchCell";
static NSString *kCellReuseIdentifierImage = @"ImageCell";
static NSString *kCellReuseIdentifierOther = @"OtherCell";
if (indexPath.row == 0)
{
MySwitchCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellReuseIdentifierSwitch forIndexPath:indexPath];
}
else if (indexPath.row == 1)
{
MyImageCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellReuseIdentifierImage forIndexPath:indexPath];
}
else if (indexPath.row == 2)
{
MyOtherCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellReuseIdentifierOther forIndexPath:indexPath];
}
此示例假设iOS 6或更高版本,dequeue
方法为您处理单元格实例化。
if (cell==nil){cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier]; }