Iphone 从NIB加载自定义滑块与从代码加载自定义滑块:从代码加载时不存在子视图
我正在尝试创建一个自定义UISlider。我需要将子视图(如标签)插入到self。我在用电话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-结果相同 当我调试
[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…;-)