我正在见面(再次:D)尺码类的问题。
我在UIViewController中有一个视图,它在Any x Any size class中设置了几个约束。
我将宽度约束设置为200px,高度约束设置为200px。
对于Regular x Regular,我想要一个更大的视图,所以我取消选中这些约束,设置新闻约束,宽度为300px,高度为300px。
问题是,当我想在我的代码中获取这些视图的大小时,我的iPad尺寸不正确。 (常规x常规尺寸等级)
我试图让它成为方法:
- (void) viewWillAppear:(BOOL)animated
- (void) viewDidLayoutSubviews
- (void) viewWillLayoutSubviews
- (void) viewDidAppear:(BOOL)animated
使用日志:
NSLog(@"size %f - %f", self.viewTest.frame.size.height, self.viewTest.frame.size.width);
它只在函数viewDidAppear中我有正确的大小(所以300px * 300px。)
问题是,如果用户“旋转”iPad,则不再调用此方法.....
所以我不明白,为什么我没有成功在其他方法中检索正确的大小? (在我的所有代码中,我对此视图没有什么特别的,目前,我只想获得此视图的大小。)
答案 0 :(得分:0)
您可以覆盖控制器中的viewWillTransitionToSize
方法,并在更改方向时执行您想要执行的操作。
夫特:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
//code
}
的OBJ-C:
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
//code
}