0

我有一个使用故事板的 ipad 应用程序,它以横向模式布局。所有标签和图像视图都在故事板中居中。它在横向模式下看起来很棒,但是一旦平板电脑旋转,ipad 就会使用横向屏幕参数重绘小部件,而不是纵向模式的参数。在正确模式下如何让小部件重绘?

4

1 回答 1

0

您可以使用自动调整大小将视图重绘为 Portait 模式。

或者

您可以使用interfaceOrientation为在 Portait 模式下未对齐的视图设置精确位置,如下面的代码

注意:仅在不正确的情况下更改小部件框架。

学习使用自动调整大小来定位您的视图......这是更受欢迎的。

对其进行动画处理以使其具有良好的方向感。

对于 iOS 6 使用- (BOOL) shouldAutorotate

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    if (interfaceOrientation == UIInterfaceOrientationPortrait|| 
             interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
   {
       //Code
        dispatch_async(dispatch_get_main_queue(), ^{
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:0.5];
            [UIView setAnimationCurve:UIViewAnimationCurveLinear];
            _btn1.frame = CGRectMake(190, 270, 137, 240);
            _btn2.frame = CGRectMake(440, 270, 137, 240);
            _btn3.frame = CGRectMake(300, 40, 137, 240);
            [UIView commitAnimations];
        });

   }
   else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight||
                   interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
  {

    dispatch_async(dispatch_get_main_queue(), ^{
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];
        _btn1.frame = CGRectMake(250, 180, 137, 240);
        _btn2.frame = CGRectMake(640, 180, 137, 240);
        _btn3.frame = CGRectMake(440, 40, 137, 240);
        [UIView commitAnimations];
    });

    //Code
}

return YES;

}
于 2013-10-21T14:21:43.677 回答