2010-06-11 100 views
0

我创建了一个从UILabel继承的自定义类。我将UILabel放入笔尖,并将标签的类设置为我的自定义类。但是,当调用viewDidLoad方法时,视图是类UILabel而不是我的自定义类。nib实例化为父类型的自定义视图

任何想法?

+0

你在自定义类中重写了哪些init方法? – falconcreek 2010-06-11 16:43:18

+0

我试着覆盖'drawRect'和'drawTextInRect'。然而,根本没有被调用,这导致我在视图控制器的viewDidLoad中插入一行:NSLog(@“标签类型:%@”,[self.label class]);'和响应是“标签类型:UILabel”。 – 2010-06-13 16:10:28

+0

我认为你需要实现initWithFrame: – falconcreek 2010-06-14 18:06:02

回答

0

我能够在测试项目中创建我的CustomLabel实例。我做了不同的事情,而不是拖拽UILabel,而是将CustomLabel的一个实例拖入视图。

我按照以下方式针对最新sdk的目标实现了awakeFromNib。

-(void)awakeFromNib 
{ 
    [self setText:[NSString stringWithFormat:@"%@",[self class]]]; 
} 

- (void)drawTextInRect:(CGRect)rect // called as expected 
{ 
    NSLog(@"drawTextInRect: called"); 
    [super drawTextInRect:rect]; 
} 

夫妇的奥秘...... 我CustomLabel执行init和initWithFrame,既不是由加载从笔尖视图机器调用。

相关问题