カスタム UI コンポーネントを作成するために UIView をカスタマイズしました。
ビューの階層はこのようになっています。
----カスタム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 メソッドをトリガーしないスクロール ビューがあることを確認するにはどうすればよいですか?