2011-04-01 58 views
0

我正在尝试创建自定义UISlider。我需要为自己插入子视图(如标签)。我正在使用从NIB加载自定义滑块vs代码:从代码加载时不存在子视图

[self insertSubview:_label1 atIndex:2]; 

这样做的方法。当我在IB中创建滑块并将其分配给我的PWSlider类时,一切正常。但是,如果我尝试从代码创建我的PWSlider,那么当我执行我的内嵌(添加我的子视图)时,不会出现子视图。

对于init中的代码,我重写了initWithFrame,对于NIB,我尝试了both,awakeFromNib以及initWithCoder - 结果相同。

当我与

NSLog(@"subview count: %d", [self.subviews count]); 

结果调试是从NIB加载我得到3子视图,加载的程序,我得到0

任何想法?

+0

什么是'PWSlider'? – 2011-04-01 18:36:08

+0

这是我自己实现的自定义UISlider ... ;-) – pawi 2011-04-20 13:26:40

回答

0

我假设你PWSlider从UISlider继承,也假设你有代码是这样的:

-(id)initWithFrame:(CGRect)r { 
    self = [super initWithFrame:r]; 
    if(self) { 
    // add your subviews here, starting from index 0 
    } 
    return self; 
} 

你有没有调试和检查你的initWithFrame被调用?另外,如果您不关心子视图在哪些位置,请使用addSubview,而不是insertSubview:atIndex :.

+0

是的,您的假设是正确的。 initWithFrame被调用,我在意子插入的位置......目前我只使用NIB文件中的滑块。感谢您的建议!其他想法? – pawi 2011-04-08 08:26:04