當用storyBoard拖一個UIScrollView,遍歷子視圖時獲取子視圖數(shù)量時,因為UIScrollView上有兩個滑動條,而滑動條以ImageView的形式添加到父視圖上,遍歷時應(yīng)該注意這個問題.
</br>
xcode8環(huán)境下:
storyBoard拖一個ScrollView,ScrollView上未填加任何子視圖下,ViewDidLoad中打印:
Paste_Image.png
在storyBoard水平與豎直滑動條同時勾選的情況下,打印結(jié)果中發(fā)現(xiàn):未在ScrollView上添加任何子視圖時,其上有兩個UIImageView.
ScrollView的subViews:(
"<UIImageView: 0x109d091f0; frame = (365 29.5; 7 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x170030fc0>>",
"<UIImageView: 0x109d157f0; frame = (369.5 25; 2.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x17002c5c0>>")
在去掉storyBoard一個勾選(取消水平滑動條)時:
Paste_Image.png
在storyBoard去掉水平滑動條時,打印結(jié)果中發(fā)現(xiàn):未在ScrollView上添加任何子視圖時,其上有一個UIImageView.
ScrollView的subViews:(
"<UIImageView: 0x7fe76ff0f2b0; frame = (234.5 118; 2.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x608000223ae0>>")
storyBoard中水平與豎直的滑動條勾選全部去掉時,打印結(jié)果為空:
ScrollView的subViews:( )
在storyBoard同時勾選時,卻在代碼中進行了操作,也會產(chǎn)生同樣的效果
self.testScrollView.showsHorizontalScrollIndicator = NO;
//打印結(jié)果
ScrollView的subViews:(
"<UIImageView: 0x7fa2d7e07340; frame = (234.5 118; 2.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x600000036120>>")
因而在處理子視圖數(shù)量時,一定要注意是否對ScrollView的滑動條進行了操作,否則會造成計算數(shù)量時產(chǎn)生偏差等問題
在做處理時,要么注意好子視圖的數(shù)量,要么增加類型判斷:
for (UIView *view in self.testScrollView.subviews) {
if ([view isKindOfClass:NSClassFromString(@"UIImageView")]) {
}
}
以上就是UIScrollView遍歷子視圖的一些問題,有任何問題的話請私信或者留言.
</br>