如何锚定相对于iPhone屏幕侧面的视图

时间:2012-11-08 15:42:39

标签: iphone ios core-graphics cgaffinetransform autoresizingmask

我正在创建一个直接在代码中创建布局的iOS应用。我习惯使用xib,但这不是这个项目的选项。我无法弄清楚如何定位固定在屏幕底部/侧面的元素。我正在寻找的解决方案将它纵向定位到底部,但是在旋转时会将其固定到右侧(非常类似于底部条在相机应用程序中的工作方式)。它正好在屏幕的底部以纵向显示,问题在于旋转

此外,我正在为iOS 5构建,因此我需要一个不使用自动布局的解决方案。

到目前为止,这是我在旋转到横向时所做的代码。这个想法是我旋转90(这是工作)然后使用某种掩码将其锚定到左侧。我在哪里错了?甚至可以锚定像这样的对象吗?

myView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleLeftMargin;


CGAffineTransform rotate90 = CGAffineTransformMakeRotation(degreesToRadians(-90));

myView.transform = rotate90;

Example Sketch

2 个答案:

答案 0 :(得分:1)

不要处理酒吧,而是处理酒吧内的景色。

试试这个:

1)使用以下方法阻止您的应用程序进行自动转换:

//For iOS 5 and lower
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return NO;
}

//For iOS 6 and upper
- (BOOL)shouldAutorotate {
    return NO;
}

2)旋转栏内的视图而不是栏本身

希望它会对你有所帮助。

答案 1 :(得分:1)

您需要使用NSLayoutConstraints来执行此操作。

我对约束编码知之甚少,因此请参考NSLayoutConstraint以获取更多参考。

WWDC 2012 Session Videos about NSLayoutConstraints