4

我在一个插座集合数组中有一些 UIButtons,我希望使用以下代码进行旋转:

for(UIButton *button1 in b90){
    button1.transform = CGAffineTransformMakeRotation( ( 90 * M_PI ) / 180 );
}

不幸的是,它不起作用。如果我给它一个可以旋转 180 或 360 度的值,例如 pi 或 2 pi 等(基本上意味着按钮将在同一个地方),它确实有效,但是如果我给它任何其他值,它将使按钮留在倾斜的方向我收到此错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“自动布局不支持具有边缘布局约束的交叉旋转边界变换,例如右、左、上、下。有问题的观点是:>'

框架和变换部分是不言自明的。我认为它只是说它根本不希望按钮倾斜。我可以通过取消选中 xib 文件中的“使用自动布局”按钮来避免该问题,但这会使旋转的按钮看起来像素化。如果您在运行时旋转 iDevice,然后出于某种原因将其旋转回来,则未像素化,但这不是我想要的。

关于如何朗读按钮而不禁用“使用自动布局”选项的任何想法?

非常感谢所有帮助,我总是检查最佳答案!

4

1 回答 1

4

我正在使用相同的语句,它对我有用:

#define DEGREES_TO_RADIANS(d) (d * M_PI / 180)
btn.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-90));

我认为您使用的是 IOS 6.0 代码,其中使用旧 xcode 启用了自动布局。

你能提供更多关于它的细节吗?

谢谢

于 2012-11-19T11:11:55.373 回答