我有一个自定义的View类,它构建了UIView的子类。
此视图通过ViewController中的nib文件加载:
[[NSBundle main] loadNibNamed:@"MyCustomView" owner:self options:nil];
在 MyCustomView.h 内部(正确连接在IB中作为主要视图类) 我有一些链接的子视图属性:
@interface MyCustomView : UIView <UITextFieldDelegate> {
....
@public
UIView *backgroundLayer; // a subview of the Main View inside the nib
....
}
@property (nonatomic, retain) IBOutlet UIView *backgroundLayer;
此插座已在Interface Builder中正确连接。
在 MyCustomView.m 中,我有以下实现:
#import <quartzcore/QuartzCore.h>
@implementation MyCustomView
@synthesize backgroundLayer;
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
....
self.backgroundLayer.layer.cornerRadius = 12.0f;
self.backgroundLayer.layer.borderColor = [UIColor lightGrayColor].CGColor;
self.backgroundLayer.layer.maskToBounds = YES;
....
}
正在应用那些backgroundLayer.layer设置的NONE 。当我在模拟器中运行时,自定义视图会出现在它没有任何这些模块的NIB中的显示方式吗?我错过了什么?我在不正确的地方拨打电话吗?
答案 0 :(得分:16)
这个问题的正确答案是使用方法:
-(void)awakeFromNib {
......
}