我在故事板创建一个UIScrollView,链接它作为一个属性视图控制器,并且现在想与分页添加一些子视图。 但是,即使我设定的尺寸故事板图形,在UIScrollView中的帧最终被0,0,0,0。 我是否需要硬编码的尺寸,即使我已经在故事板图形指定他们?
此外,一种相关的,是它可以自定义子视图在故事板在这个滚动视图使用? 看来我不能创造这样的观点,除非它已经是一个控制器内。 因为我只有一个控制器,我想建立图形可能多个视图,我怎么做到这一点,而无需编程这样做?
我在故事板创建一个UIScrollView,链接它作为一个属性视图控制器,并且现在想与分页添加一些子视图。 但是,即使我设定的尺寸故事板图形,在UIScrollView中的帧最终被0,0,0,0。 我是否需要硬编码的尺寸,即使我已经在故事板图形指定他们?
此外,一种相关的,是它可以自定义子视图在故事板在这个滚动视图使用? 看来我不能创造这样的观点,除非它已经是一个控制器内。 因为我只有一个控制器,我想建立图形可能多个视图,我怎么做到这一点,而无需编程这样做?
故事板viewDidLayoutSubviews是在那里你可以得到所有你的意见的大小。 viewWillAppear中并没有为我工作,总是返回(0,0,0,0);
故事板控制器的出口viewDidLoad中之前没有连接,它的大小没有设置直到viewWillAppear中,在这里看到:
http://cs193p.m2m.at/lecture-8/
一旦控制器完全实例及其网点都迷上了viewDidLoad中:被调用。 因此,这是把初始化代码的好地方。 然而控制器的尺寸并没有被设定,但在viewWillAppear中:这就是所谓之前出现在屏幕上的视图。
所以我觉得Enricos建议是正确的。 刚刚尝试把大小相关的东西进入viewWillAppear中。
我发现,当我在访问滚动视图viewWillAppear
,该框架将实际给予正确的数字。 我以前在尝试这个awakeFromNib
和viewDidLoad
,得到了0,0,0,0
帧为好。
什么是奇怪的是故事板之前,你都能够得到正确的帧尺寸awakeFromNib。 这方面的一个例子是苹果公司的代码示例之一的PageControl 。
因此,在短期回答这个问题,尝试访问该viewWillAppear
(假设您创建故事板的UIScrollView)。
你可能设置在一条线上,其中的观点是不是还设置断点。 试试这个:
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
CGRect frame = self.scrollView.frame;
NSLog (@"FRAME IS %@", NSStringFromCGRect(frame));
}
return self;
}
这是很简单:禁止使用自动布局在故事板的设置。