cellForRowAtIndexPath中的Objective-C条件,用于单元格imageView无法正常工作

时间:2015-09-02 20:35:37

标签: ios objective-c uitableview

我有这个代码块,我想要做的是如果类型的NSString等于Directory,我希望单元格有图像,如果没有,没有图像,但是每个单元格项都返回一张图片:(我做错了什么?

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    NSArray *elements = [[[self.tableData objectAtIndex:indexPath.row] objectForKey:@"Name"] componentsSeparatedByString:@"FTP\\"];

    NSString *type = [[self.tableData objectAtIndex:indexPath.row] objectForKey:@"Type"];

    cell.textLabel.text = elements[1];

    if([type  isEqual: @"Directory"]){
        cell.imageView.image = [UIImage imageNamed:@"FolderImage"];
    }

    return cell;

}

2 个答案:

答案 0 :(得分:3)

字符串比较应以其他方式完成

尝试:

if([type  isEqualToString: @"Directory"]){
       cell.imageView.image = [UIImage imageNamed:@"FolderImage"];
} else {
       cell.imageView.image = NULL;
}

答案 1 :(得分:2)

相同的单元格在不同的索引路径上重复使用。因此,您需要在其他条件下将图像显式设置为nil:

if([type isEqualToString: @"Directory"]){
    cell.imageView.image = [UIImage imageNamed:@"FolderImage"];
}
else {
    cell.imageView.image = nil;
}