customCell图像在didSelectRowAtIndexPath上没有响应(但是否则有效)

时间:2012-01-27 15:25:20

标签: iphone objective-c ipad uitableview cell

我为UITableView提供了一个很好的customCell,一切运行良好。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = nil;

    CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {

        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        for (id currentObject in topLevelObjects){
            if ([currentObject isKindOfClass:[UITableViewCell class]]){
                cell =  (CustomCell *) currentObject;
                break;
            }
        }
    }


    // LOOK HERE: cellArrowPointingRight is an UIImage view of which I like to turn on later
    [cell.cellArrowPointingRight setHidden:YES];
    // The above line works as it hides all cellArrowPointingRight(s)

    return cell;
}

在自定义视图中(在IB中制作)我也有cellArrowPointingRight(它连接到M中的H和@synthesize cellArrowPointingRight

问题是我在选择单元格时无法运行它

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {



    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
   // cell.contentView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5];
   cell.textLabel.text = @"Clicked";
  // PROBLEM HERE: (cellArrowPointingRight is not legal)
  [cell.cellArrowPointingRight setHidden:NO]; 
} 

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正在使用:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

默认单元格通常不应该有一个名为cellArrowPointingRight的字段,因此普通UITableViewCell不会响应该字段。

您需要做的是将单元格设为:

CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];

假设您的CustomCell是UITableViewCell的超类。