我正在尝试创建自定义UISlider。我需要向自己插入子视图(如标签)。我正在使用
[self insertSubview:_label1 atIndex:2];
这样做的方法。当我在IB中创建滑块并将PWSlider类分配给它时,一切正常。
但是,如果我尝试从代码创建我的PWSlider,那么当我执行我的inits(添加我的子视图)时,不存在子视图。
对于代码中的init,我重写initWithFrame
,对于NIB案例,我尝试了两个,awakeFromNib和initWithCoder - 结果相同。
使用
进行调试时NSLog(@"subview count: %d", [self.subviews count]);
结果是从NIB加载我得到3个子视图,以编程方式加载我得到0。
有什么想法吗?
答案 0 :(得分: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:。