我试图UIView
在设备处于横向时为 320x240 和纵向时为 240x320 的屏幕中间居中。
例如:
如果我让 UIKit 的布局系统自己做,我会在旋转横向时得到这个:
如果我尝试固定宽度和高度,我会得到:
基本上,有没有办法在旋转过程中保持物体的尺寸(但仍然旋转物体)?最好只使用 Interface Builder,和/或如果不可能的话,使用最少的代码。
我试图UIView
在设备处于横向时为 320x240 和纵向时为 240x320 的屏幕中间居中。
例如:
如果我让 UIKit 的布局系统自己做,我会在旋转横向时得到这个:
如果我尝试固定宽度和高度,我会得到:
基本上,有没有办法在旋转过程中保持物体的尺寸(但仍然旋转物体)?最好只使用 Interface Builder,和/或如果不可能的话,使用最少的代码。
我认为 JeffCompton 是对的:在给定方向的情况下,您无法仅使用 XIB / Autolayouts / Autoresizing 蒙版来更改视图的大小。
我认为最简单的方法是:
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[UIView animateWithDuration:0.3 animations:^(void) {
if(UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
self.yourView.frame = CGRectMake([UIScreen mainScreen].frame.size.width-320/2,[UIScreen mainScreen].frame.size.height-240/2,320,240);
} else {
self.yourView.frame = CGRectMake([UIScreen mainScreen].frame.size.width-240/2,[UIScreen mainScreen].frame.size.height-320/2,240,320);
}
}];
}