2013-07-22 38 views
0

我想要在设备处于横向时为320x240,纵向时为240x320,屏幕中间为UIViewiOS/UIKit:在旋转过程中保持大小

例如:

Portrait Mode Landscape Mode


如果我让UIKit中的布局系统做它自己的,我得到这个旋转时的景观:

Bad Landscape 1

而且如果我试图钉宽度和高度,我得到这个:

Bad Landscape 2


基本上,是有任何方式保持的物体的尺寸的旋转期间(但仍旋转对象)?最好只使用Interface Builder和/或最少量的代码(如果这是不可能的话)。

+0

但是你的目标是*不*保持大小。您的目标是*将尺寸从320x240改为240x320。 – rmaddy

+0

好点,我不知道如何正确地说出来。 – gvl

+0

您是否尝试过从视图控制器绑定到方向委托方法?从那里,你可以根据方向调整你的子视图的大小。 – JeffRegan

回答

0

我认为杰夫康普顿是正确的:没有办法让你改变你的视图的大小给定的方向只使用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); 
     } 
    }]; 
} 
相关问题