【发布时间】:2014-04-13 05:31:56
【问题描述】:
我在情节提要中有一个 UIImageView,连接到子类 UIViewController 的标题,如下所示:
@property (retain, nonatomic) IBOutlet UIImageView *displayPhoto;
在UIViewController子类的.m中,我尝试设置displayPhoto的图片。
@synthesize displayPhoto;
-(void)awakeFromNib {
UIImage *image = [UIImage imageNamed:@"dp.jpg"];
[displayPhoto setImage:image];
displayPhoto.layer.cornerRadius = displayPhoto.image.size.width/2;
[self.view addSubview:displayPhoto];
}
但它绝对没有任何作用。如果我再添加一行,添加另一个图像视图,如下所示:[self.view addSubview:[[UIImageView alloc] initWithImage:image]];,使我的方法f
@synthesize displayPhoto;
-(void)awakeFromNib {
UIImage *image = [UIImage imageNamed:@"dp.jpg"];
[self.view addSubview:[[UIImageView alloc] initWithImage:image]];
[displayPhoto setImage:image];
displayPhoto.layer.cornerRadius = displayPhoto.image.size.width/2;
[self.view addSubview:displayPhoto];
}
它突然开始工作并将图像实例添加到视图中。一个在左上角(来自我添加的行),另一个在故事板图像位置。
发生了什么变化?添加这一行如何使我的代码正常工作,是否有任何解决方法可以使图像正常显示?
【问题讨论】:
-
关键问题:如果在调试器中设置断点并检查,displayPhoto 是否为空?您是否可能没有将 Interface Builder 中的 UImageView 连接到您的 IBOutlet 属性?
-
也许 awakeFromNib 为时过早。尝试将 awakeFromNib 中的代码移动到 viewDidLoad 并查看它是否有效。我想您的 IBOutlet 连接正确。
标签: ios objective-c uiviewcontroller uiimageview uistoryboard