【问题标题】:Rotating a UIView through the "transform" property gets messed up when the orientation changes当方向改变时,通过“transform”属性旋转 UIView 会变得混乱
【发布时间】:2011-04-23 00:08:15
【问题描述】:

我正在尝试创建一个 iPad 应用程序,但遇到了来自模拟器的可疑行为(目前无法在设备上进行测试..)。

问题是当任何 UIView 通过其 transform 属性旋转时,然后允许通过更改 iPad 的方向来操纵包含它的视图。这可以通过创建一个新的基于 View 的 iPad 项目并将以下代码插入到视图控制器中来简化:

- (IBAction) rotate:(UIView*)sender {
 if (CGAffineTransformIsIdentity(sender.transform)) {
  sender.transform = CGAffineTransformMakeRotation(M_PI / 4);
 } else {
  sender.transform = CGAffineTransformIdentity;
 }
}

然后将单个按钮添加到视图并将其操作与上述方法链接。

如您所见,该方法应在单击时旋转按钮,然后在再次单击时不旋转 - 它就是这样做的。但是,当按钮旋转并且您更改方向(从“硬件”菜单中)时,它会开始表现得很奇怪 - 改变其形状或完全消失。

值得注意的是,如果我创建 translation 转换,则不会发生这种情况。

我的问题是:

1。由于我目前没有 iPad(正在处理它),任何人都可以告诉我这是否也发生在设备上? 2.我在这里做错了吗?也许这不是旋转 UIView 的方式?如果有,是什么?

更新:从文档看来,如果 [transform] 属性不是身份转换,则 frame 属性的值是未定义的,因此应该被忽略。 em> 所以问题可能是我在更改 transform 属性时使用了 autoresizeMask那么如何或应该如何做到这一点?

谢谢, Aviad。

【问题讨论】:

    标签: ios-simulator ipad


    【解决方案1】:

    我想如果我没记错的话,我不久前也遇到过同样的问题,它是由在 Interface Builder 中设置的锚点引起的。进入 Size Inspector 并关闭授权面板中将视图固定到边缘的引脚,我认为应该这样做。

    我希望我没记错。

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多