0
我想要在设备处于横向时为320x240,纵向时为240x320,屏幕中间为UIView
。iOS/UIKit:在旋转过程中保持大小
例如:
如果我让UIKit中的布局系统做它自己的,我得到这个旋转时的景观:
而且如果我试图钉宽度和高度,我得到这个:
基本上,是有任何方式保持的物体的尺寸的旋转期间(但仍旋转对象)?最好只使用Interface Builder和/或最少量的代码(如果这是不可能的话)。
我想要在设备处于横向时为320x240,纵向时为240x320,屏幕中间为UIView
。iOS/UIKit:在旋转过程中保持大小
例如:
如果我让UIKit中的布局系统做它自己的,我得到这个旋转时的景观:
而且如果我试图钉宽度和高度,我得到这个:
基本上,是有任何方式保持的物体的尺寸的旋转期间(但仍旋转对象)?最好只使用Interface Builder和/或最少量的代码(如果这是不可能的话)。
我认为杰夫康普顿是正确的:没有办法让你改变你的视图的大小给定的方向只使用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);
}
}];
}
但是你的目标是*不*保持大小。您的目标是*将尺寸从320x240改为240x320。 – rmaddy
好点,我不知道如何正确地说出来。 – gvl
您是否尝试过从视图控制器绑定到方向委托方法?从那里,你可以根据方向调整你的子视图的大小。 – JeffRegan