【发布时间】:2011-12-22 15:29:15
【问题描述】:
我正在使用 if 语句来设置 UIImageView 的图像,具体取决于变量的值。这是声明:
- (void)configureView
{
if (self.detailItem) {
if ([detailItem isEqualToNumber:[NSNumber numberWithInt:0]]) {
[mapImageView setImage:[UIImage imageNamed:@"0.jpg"]];
NSLog(@"derp");
}
}
}
“derp”被打印,但UIImageView 的图像不会改变...如果我将setImage: 语句放在viewDidLoad 中,它可以正常工作。我做错了什么?
【问题讨论】:
-
什么时候/在哪里调用你的方法?
-
在 setDetailItem: - (void)setDetailItem:(NSNumber *)newDetailItem { if (detailItem != newDetailItem) { detailItem = newDetailItem; // 更新视图。 [自我配置视图]; } }
-
假设“0.jpg”存在于应用程序包中,尝试记录
mapImageView.. 要么是nil,要么它的frame更改为不可见 -
这段代码是在主线程上运行的吗?如果没有,它可能会导致代码运行时出现相当长的延迟,直到您看到更改。
-
当我检查 mapImageView 的值时它说它是空的......我应该怎么做才能解决这个问题?谢谢。
标签: objective-c ios cocoa-touch uiimageview uiimage