Iphone 从NIB加载自定义滑块与从代码加载自定义滑块:从代码加载时不存在子视图

Iphone 从NIB加载自定义滑块与从代码加载自定义滑块:从代码加载时不存在子视图,iphone,ios4,initialization,subviews,Iphone,Ios4,Initialization,Subviews,我正在尝试创建一个自定义UISlider。我需要将子视图(如标签)插入到self。我在用电话 [self insertSubview:_label1 atIndex:2]; 方法这样做。当我在IB中创建滑块并将PWSlider类分配给它时,一切正常 但是,如果我尝试从代码创建PWSlider,则在初始化(添加子视图)时没有子视图 对于代码中的init,我覆盖了initWithFrame,对于NIB案例,我尝试了这两种方法,awakeFromNib和initWithCoder-结果相同 当我调试

我正在尝试创建一个自定义UISlider。我需要将子视图(如标签)插入到self。我在用电话

[self insertSubview:_label1 atIndex:2];
方法这样做。当我在IB中创建滑块并将PWSlider类分配给它时,一切正常

但是,如果我尝试从代码创建PWSlider,则在初始化(添加子视图)时没有子视图

对于代码中的init,我覆盖了
initWithFrame
,对于NIB案例,我尝试了这两种方法,awakeFromNib和initWithCoder-结果相同

当我调试

NSLog(@"subview count: %d", [self.subviews count]);
结果是从NIB加载得到3个子视图,以编程方式加载得到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:。

是的,您的假设是正确的。initWithFrame会被调用,我很关心子视图插入的位置。。。目前我只使用NIB文件中的滑块。谢谢你的建议!其他想法?这是我自己实现的自定义UISlider…;-)