我在Storyboards文件中创建了一个UIScrollView,并将其正确连接到我的控制器IBOutlet属性。以下是故事板中的内容:
这是我在viewDidLoad上运行的代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"COUNT: %d", [self.scrollView subviews].count);
for(UIView *v in [self.scrollView subviews]) {
NSLog(@"View: %@", v);
}
}
因此,我希望在我的控制台日志中看到我的3个视图。但是,它正在打印一些完全不相关的东西(2个UIImageViews?):
2014-09-17 13:06:33.155 Project[6333:652705] COUNT: 2
2014-09-17 13:06:33.156 Project[6333:652705] View: <UIImageView: 0x7b094460; frame = (233 124.5; 7 3.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x7b0947c0>>
2014-09-17 13:06:33.156 Project[6333:652705] View: <UIImageView: 0x7b094fb0; frame = (236.5 121; 3.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x7b095080>>
我可能在这里做错了,但Interface Builder或Outlet连接本身是否存在某种缓存?
答案 0 :(得分:0)
图像视图是滚动视图边缘的滚动条。调用viewDidLoad
时,视图层次结构尚未完全安装。将代码移到awakeFromNib
方法中(并注意图像视图 - 通常不依赖于subviews
,保持对要访问的视图的显式引用)。