0

我像这样创建界面构建器树

myScrollview
    UIView

当我运行时,滚动视图似乎有 3 个这样的子视图

myScrollview
   UIView
   UIImageView
   UIImageView

此结果由此代码(带有断点和监视面板)测试,该代码在 super viewDidLoad 之前添加

for(int i = 0 ; i < myScrollview.subviews.count ; i++){  
    id temp = [myScrollview.subviews objectAtIndex:i];  
}

删除某些属性后出现错误,并且我已经检查了界面生成器,没有与此删除相关的警告

我应该怎么做才能获得有关此错误的更多线索?


解决了

我将第三个滚动视图移到后面。这个视图加载了 loadNib,我想我没有将它设置为隐藏(已经设置但它没有消失)。不知道应该在哪里设置 ThridScrollView.hidden = TRUE。〜__〜'

4

2 回答 2

0

那个代码是错误的。您正在寻找 myScrollview 中的对象,而不是 myScrollview.subviews

它应该是:

for(int i = 0 ; i < myScrollview.subviews.count ; i++){  
    id temp = [myScrollview.subviews objectAtIndex:i];  
}
于 2013-02-28T17:04:41.780 回答
0

这是完全正常的,我可以自己在 IB 中重现它。AUIScrollView包含许多您无权访问的子视图。这包括一些UIImageViews,用于显示反弹/滚动UIScrollView越过其边缘时出现的“渐变”。

您看到的是 Apple 在滚动视图实现中使用的“私有”视图。您应该忽略它们,并记住,对于 Apple 提供的大多数视图类(滚动视图、表格视图、集合视图等),还有其他未记录的子视图,Apple 内部正在使用它们。作为一般规则,您应该记住这可能具有欺骗性,因为您通常不知道的子类中subviews正在发生一些事情。UIView

如果您遇到您认为可能涉及这些私人图像视图的问题,请告诉我们 - 或许提供有关问题究竟是什么的更多详细信息?屏幕截图可能非常有用。

于 2013-02-28T17:07:50.387 回答