我已经定制了UIView来创建自定义UI组件。
视图的层次结构就是这样。
----自定义UIView
----------------的UIScrollView
----------------------------- ScrollView中的子视图
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
//Allocation and Initialization of ScrollView
//...
[super addSubView:scrollView];
}
return self;
}
- (void)layoutSubviews {
DLog(@"%@",[NSThread callStackSymbols]);
[super layoutSubviews];
[self reloadData];
}
//This method can be used to reload the entire control
-(void)reloadData{
//Reload the subviews of control
}
滚动滚动视图时,将在iOS 4.3版中调用layoutSubviews方法。但是如果版本高于4.3(5.0,6.0),则不会调用此事件处理程序。
在我的用例中,我不希望调用layoutsubviews。
如何在滚动时确保滚动视图不会触发layoutsubviews方法?
答案 0 :(得分:0)
我想出的解决方案如下:
----自定义UIView
----------------另一个UIView
-------------------------------的UIScrollView
-------------------------------------------- Sub Views in滚动型
现在,init方法已更改为以下内容:
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
//Allocation and Initialization of Container View
[super addSubView:ScrollViewHolder];
//Allocation and Initialization of ScrollView
//...
[ScrollViewHolder addSubView:scrollView];
}
return self;
}