【发布时间】:2010-04-27 16:31:51
【问题描述】:
我一直在尝试在 awakeFromNib 中设置 UIImageView 背景颜色(见下文)
[imageView setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]];
当它不起作用时,我意识到可能是因为视图尚未加载,我应该将颜色更改移动到 viewDidLoad。
我可以验证一下我有这个权利吗?
加里
EDIT_002:
我刚刚开始了一个新项目,以从头开始检查这一点。我像往常一样设置视图。结果是 awakeFromNib 中的控件确实设置为 (null)。这是我所拥有的:
代码:
@interface iPhone_TEST_AwakeFromNibViewController : UIViewController {
UILabel *myLabel;
UIImageView *myView;
}
@property(nonatomic, retain)IBOutlet UILabel *myLabel;
@property(nonatomic, retain)IBOutlet UIImageView *myView;
@end
.
@synthesize myLabel;
@synthesize myView;
-(void)awakeFromNib {
NSLog(@"awakeFromNib ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"AWAKE"];
[super awakeFromNib];
}
-(void)viewDidLoad {
NSLog(@"viewDidLoad ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"VIEW"];
[super viewDidLoad];
}
输出:
awakeFromNib ...
myLabel: (null)
myView : (null)
viewDidLoad ...
myLabel: UILabel
myLabel: UIImageView
我很想知道这是否应该有效,从文档中看起来应该有效,但考虑到我通常设置的方式,我不太明白为什么在这种情况下它不起作用。
【问题讨论】:
标签: iphone objective-c cocoa-touch