编辑以询问Autolayout在这种情况下是否有帮助?
怎样才能让我的UILabel在屏幕上保持一个固定的位置,同时仍然旋转?shouldAutorotateToInterfaceOrientation返回YES,标签旋转正常,但无论我如何设置Xcode中的struts和springs,标签的位置都会发生变化。
第一张图片显示了我是如何用四个单独的UILabels在故事板中创建布局的。第二张图片显示了景观的外观--这不是我想要的。第三张图片显示了我想要的景观效果,每个数字的旋转动画都以数字本身为中心。
发布于 2012-02-19 07:24:35
vrk的答案是正确的,但shouldAutorotateToInterfaceOrientation:
不是展示标签的正确方法。当您收到shouldAutorotateToInterfaceOrientation:
时,新方向尚未更新任何内容。
您应该在willAnimateRotationToInterfaceOrientation:duration:
中布局视图。正如the documentation所说:
在调用此方法时,
interfaceOrientation
属性已设置为新方向,并且视图的边界已更改。因此,您可以在此方法中执行视图所需的任何附加布局。
您甚至可以在此方法中将视图动画化为它们的新位置。
发布于 2012-02-19 07:03:33
您可以对标签执行旋转(变换)。在uiviewcontroller中的didrotatefrom interfaceorientation方法上这样做。
uilabel.transform=CGAffineTransformMakeRotation(M_PI / -4);像这样。在所有四个方向上执行此操作。还有一件事是从and中获取statusbar方向,而不是设备方向。它将帮助您与视图方向保持同步。
发布于 2012-02-19 06:29:21
您需要在shouldAutorotateToInterfaceOrientation方法中手动设置标注的框架位置值
https://stackoverflow.com/questions/9346864
复制