【发布时间】:2010-05-29 10:51:14
【问题描述】:
iPad 应用程序上的 UIImageView 属性非常奇怪的问题
@interface MyViewController : UIViewController {
IBOutlet UIImageView* coverImage;
}
@property(nonatomic, retain) IBOutlet UIImageView* coverImage;
…更多代码
@implementation MyViewController
@synthesize coverImage;
…更多代码
- (void)viewDidLoad {
[super viewDidLoad];
NSString* imageName = @"my_image.png";
UIImage* tempImage = [UIImage imageNamed:imageName];
[self.coverImage setImage:tempImage];
}
上面的代码将显示图像。
在另一部分代码中:
-(IBAction) stopButtonPressed:(id)sender {
[self.coverImage setHidden:YES];
NSLog(@"coverImage desc: %@", [coverImage description]);
}
图像不会消失。我知道对图像的引用不是零,因为它给了我这个输出:
2010-05-29 17:37:40.706 MyApp[95360:207] coverImage desc: UIImageView: 0x5128420;帧 = (0 0; 1024 768);自动调整大小 = RM+BM;用户交互启用 = 否;层=CALayer:0x512bed0
此外,如果我将 viewDidLoad 中的代码移动到类的另一部分,并尝试从那里执行它,它根本无法显示图像。
【问题讨论】:
-
可能是一个愚蠢的建议,但每当视图中似乎没有发生某些事情时,我总是尝试调用 [view setNeedsDisplay:YES]...
-
感谢您的建议,但这仍然不起作用。奇怪的是,当我尝试将图像设置为新图像或在类中的任何位置设置它的隐藏属性时,它会失败。它仅适用于 viewdidLoad。
-
你能让包含视图重绘吗?如果你改变它的颜色(或者一些适合任何视图的改变),这对图像视图有什么影响?
-
好吧,现在可以了。更糟糕的是,我不知道为什么。我再次尝试了 setNeedsDisplay,然后一切都开始正常工作。即使在我注释掉 setNeedDisplay 之后,它仍然有效。去图吧。
-
嘿。我知道这会有点烦人,但只要它继续工作,抱怨就是无礼的!