1

我正在尝试在每一行中显示图像。我有一个开关来决定哪张图片在哪里。我没有显示任何图片。有人遇到同样的问题吗?

这是代码:

    self.statIcon = (UIImage *)[cell viewWithTag:42];

    NSString *statusPath;
    switch ([[[self.logList objectAtIndex:position] objectForKey:@"STATE"] intValue]) {
        case 1:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_acc" ofType:@"png"];
            break;
        case 2:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_dec" ofType:@"png"];
            break;
        case 3:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_rights" ofType:@"png"];
            break;
        default:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_rights" ofType:@"png"];
            break;
    }
    UIImage *statImg = [[UIImage alloc] initWithContentsOfFile:statusPath];
    self.statIcon = statImg;

从调试器:

(NSString *) $1 = 0x001218b0 /var/mobile/Applications/167CC386-A0EE-4E05-BADD-B0307A01D684/My App.app/log_acc.png

(UIImage *) $0 = 0x00132e20 <UIImage: 0x132e20>
4

1 回答 1

1

好的,感谢David H,我能够找到解决问题的方法。主要问题是,self.statIconUIImage不是UIImageView. 所以只需要改变类型并最终使用功能setImage

这是代码:

    self.statIcon = (UIImageView *)[cell viewWithTag:42];
    NSString *statusPath;
    switch ([[[self.logList objectAtIndex:position] objectForKey:@"STATE"] intValue]) {
        case 1:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_acc" ofType:@"png"];
            break;
        case 2:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_dec" ofType:@"png"];
            break;
        case 3:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_rights" ofType:@"png"];
            break;
        default:
            statusPath = [[NSBundle mainBundle] pathForResource:@"log_rights" ofType:@"png"];
            break;
    }
    UIImage *statImg = [UIImage imageWithContentsOfFile:statusPath];
    [self.statIcon setImage:statImg];
于 2012-07-26T06:55:39.393 回答