我有一個自定義的View類構建哪個子類UIView。爲什麼在initWIthCoder中調用我的UIView圖層屬性時:(NSCoder *)aDecoder?
該視圖是通過在一個的ViewController筆尖文件經由加載:
[[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;
....
}
NONE正在應用的那些backgroundLayer.layer設置。當我在模擬器中運行時,自定義視圖看起來如何在沒有任何這些mod的NIB中出現?我錯過了什麼?我是否在不正確的地方打電話?
經進一步檢查,似乎** ** backgroundLayer仍空當我綁內__initWithCoder__修改。 – 2011-03-02 18:43:14
**更新**我們可以刪除問題嗎?剛剛發現_-(void)awakeFromNib_ – 2011-03-02 19:03:35