Почему мои свойства уровня UIView не устанавливаются при вызове из initWIthCoder: (NSCoder *) aDecoder?

У меня есть собственный класс View, который является подклассом UIView.

Это представление загружается через файл пера в ViewController через:

[[NSBundle main] loadNibNamed:@"MyCustomView" owner:self options:nil];

Inside 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 настройки применяются. Когда я запускаю симулятор, пользовательский вид отображается точно так же, как он отображается в NIB без каких-либо из этих модов? Что мне не хватает? Я звоню не в том месте?

9
задан skålfyfan 2 March 2011 в 17:58
поделиться