iOS UIScrollView遍历subviews问题

当用storyBoard拖一个UIScrollView,遍历子视图时获取子视图数量时,因为UIScrollView上有两个滑动条,而滑动条以ImageView的形式添加到父视图上,遍历时应该注意这个问题.


xcode8环境下:

storyBoard拖一个ScrollView,ScrollView上未填加任何子视图下,ViewDidLoad中打印:

iOS UIScrollView遍历subviews问题_第1张图片
Paste_Image.png

在storyBoard水平与竖直滑动条同时勾选的情况下,打印结果中发现:未在ScrollView上添加任何子视图时,其上有两个UIImageView.

ScrollView的subViews:(
">",
">")
在去掉storyBoard一个勾选(取消水平滑动条)时:
iOS UIScrollView遍历subviews问题_第2张图片
Paste_Image.png

在storyBoard去掉水平滑动条时,打印结果中发现:未在ScrollView上添加任何子视图时,其上有一个UIImageView.

ScrollView的subViews:(
">")

storyBoard中水平与竖直的滑动条勾选全部去掉时,打印结果为空:

ScrollView的subViews:( )
在storyBoard同时勾选时,却在代码中进行了操作,也会产生同样的效果
self.testScrollView.showsHorizontalScrollIndicator = NO;

//打印结果
 ScrollView的subViews:(
">")

因而在处理子视图数量时,一定要注意是否对ScrollView的滑动条进行了操作,否则会造成计算数量时产生偏差等问题

在做处理时,要么注意好子视图的数量,要么增加类型判断:

for (UIView *view in self.testScrollView.subviews) {
    
    if ([view isKindOfClass:NSClassFromString(@"UIImageView")]) {
           
    }
}

以上就是UIScrollView遍历子视图的一些问题,有任何问题的话请私信或者留言.


你可能感兴趣的:(iOS UIScrollView遍历subviews问题)