【发布时间】: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