2011-03-02 37 views
9

我有一個自定義的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中出現?我錯過了什麼?我是否在不正確的地方打電話?

+0

經進一步檢查,似乎** ** backgroundLayer仍空當我綁內__initWithCoder__修改。 – 2011-03-02 18:43:14

+0

**更新**我們可以刪除問題嗎?剛剛發現_-(void)awakeFromNib_ – 2011-03-02 19:03:35

回答

16

正確回答這個問題是使用方法:

-(void)awakeFromNib { 
    ...... 
} 
+0

如果我手動編碼沒有筆尖的UIView,該如何解決? – RSully 2013-03-13 01:40:24

相關問題