我像这样创建界面构建器树
myScrollview
UIView
当我运行它时,滚动视图显示有3个像这样的子视图
myScrollview
UIView
UIImageView
UIImageView
此代码测试此结果(带断点和监视面板) 在super viewDidLoad
之前添加了哪些代码for(int i = 0 ; i < myScrollview.subviews.count ; i++){
id temp = [myScrollview.subviews objectAtIndex:i];
}
删除一些属性后出现错误,我已经检查了界面构建器,没有与此删除相关的警告
我该怎么做才能更好地了解这个错误?
已解决
我将第3个scrollview移到后面。此视图加载了loadNib 而且我想我没有把它隐藏起来(已设置它但它不会消失)。 不知道我应该在哪里设置ThridScrollView.hidden = TRUE。 〜__〜'
答案 0 :(得分:0)
那段代码错了。您正在寻找myScrollview中的对象而不是myScrollview.subviews
应该是:
for(int i = 0 ; i < myScrollview.subviews.count ; i++){
id temp = [myScrollview.subviews objectAtIndex:i];
}
答案 1 :(得分:0)
这是完全正常的,我可以在IB中自己复制它。 UIScrollView
包含许多您无权访问的子视图。这包括一些UIImageViews
,用于显示当您跳过UIScrollView
超出其边缘时出现的“渐变”。
您所看到的是Apple在滚动视图实现中使用的“私有”视图。您应该忽略它们,并记住,对于Apple提供的大多数视图类(滚动视图,表视图,集合视图等),还有其他未记录的子视图,Apple内部使用这些子视图。作为一般规则,您应该记住,subviews
可能具有欺骗性,因为UIView
子类中有一些您通常不知道的内容。
如果您遇到了您认为可能涉及这些私有图片视图的问题,请告诉我们 - 或许提供有关问题究竟是什么的更多详细信息?截图可能非常有用。