我在Storyboards文件中创建了一个UIScrollView,并将其正确连接到控制器IBOutlet属性。以下是故事板中的内容:
- UIS滚动视图
- UI视图1
- UI视图2
- UI视图3
- 限制
这是我在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>>
我可能显然做错了什么,但接口生成器或出口连接本身中是否存在某种缓存?
图像视图是滚动视图边缘的滚动条。调用viewDidLoad
时,视图层次结构尚未完全安装。将代码移到awakeFromNib
方法中(注意图像视图-通常不依赖于subviews
,保持对要访问的视图的显式引用)。