我有一个UITableview
,在该表中有很多部分。现在我必须为不同部分的行设置不同的图像。我知道如何为一个部分中的不同行设置不同的图像,但在这里我必须在不同部分的行上设置不同的图像?
答案 0 :(得分:2)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.section == yourSection) {
if(indexPath.row == yourRow) {
// Do something
}
}
}
使用此基本逻辑可根据您的需要进行自定义。如果数字较大,最好使用switch case
而不是if-else
答案 1 :(得分:1)
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
NSArray *listData =[self.tableContents objectForKey:[self.sotreKeys objectAtIndex:[indexPath section]]];
UITableViewCell * cell = [tableView
dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if(cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:SimpleTableIdentifier] autorelease];
}
if(indexPath.section == 0 && indexPath.row ==0)
{
/*Add image on section of cell*/
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}
if(indexPath.section == 0 && indexPath.row ==1)
{
/*Add image on section of cell*/
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}
if(indexPath.section == 1 && indexPath.row ==1)
{
/*Add image on section of cell*/
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}
}
使用这个我认为它会帮助你
答案 2 :(得分:0)
有很多方法可以解决这个问题。如果您要将图像存储在数组中,我发现这是最好的方法。
将图像存储在一个数组数组中,以便您可以使用section和row对其进行索引,并以类似的方式访问它。数组的数量应该是节的数量。如果要动态更改节和/或行的数量,我建议您使用NSMutableArray。如果没有,NSArray将正常工作。
您现在可以从像cellForRowAtIndexPath:这样的方法设置这些图像,或者您知道要加载的单元格的indexPath的任何方法,如
[[imagesSource objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
而不是不必要的switch / if语句。我可能还会添加switch /如果在加载tableviews的单元格时效果不佳,但在tablview上使用时非常方便,以确定哪个tableview需要一个单元格。
如果您需要以不同的方式存储图像,请指定以便我可以尝试找出更好的解决方案。