0

我试图UIView在设备处于横向时为 320x240 和纵向时为 240x320 的屏幕中间居中。

例如:

人像模式 横向模式


如果我让 UIKit 的布局系统自己做,我会在旋转横向时得到这个:

坏风景 1

如果我尝试固定宽度和高度,我会得到:

坏风景 2


基本上,有没有办法在旋转过程中保持物体的尺寸(但仍然旋转物体)?最好只使用 Interface Builder,和/或如果不可能的话,使用最少的代码。

4

1 回答 1

0

我认为 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);
        }
    }];
}
于 2013-07-22T21:47:42.910 回答