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;

DEBUGGERから:

(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

OK、 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 に答える