8

我是 Xcode 的初学者,我正在使用带有自动布局的 ios6。

我想从以下位置旋转我的 uiviewcontroller:

在此处输入图像描述

至:

在此处输入图像描述

我想防止我的底栏旋转。与 Apple 的相机应用程序旋转非常相似,但问题是一切都在旋转。

我试着放一些代码,比如

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{   
    // [Bar setTransform:CGAffineTransformMakeRotation(M_PI / -2.0)];
    // [Bar setTranslatesAutoresizingMaskIntoConstraints:YES];
}
4

2 回答 2

3

我不知道如何通过 IB 来实现它,但是您可以通过代码添加特定的约束来做到这一点:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
    [self.view removeConstraints:landscapeConstraints];
  } else {
    [self.view addConstraints:landscapeConstraints];
  }
}
于 2013-02-24T18:20:00.613 回答
-1

首先,您确定您的视图实际上是在旋转吗?

如果是这样,您要做的是将绿色视图的底部固定到其超级视图的底部。您应该可以在 Interface Builder 中执行此操作。选择您的绿色视图,然后单击 Storyboard 文件底部的“约束”按钮(中间那个): 添加约束按钮

接下来,选择“Bottom Space to Superview”,如下图所示: 将底部空间固定到超级视图

这将设置一个约束,说“始终将此视图的底部固定在其父视图的底部”。这样做应该会给你你正在寻找的结果。我在一个快速示例项目中进行了设置。下面分别是纵向和横向视图的样子:

肖像 景观

于 2013-01-18T21:24:15.390 回答