我正在尝试创建一个iPad应用程序,但是我遇到了一个来自模拟器的可疑行为(目前无法在设备上进行测试......)。
问题在于让任何UIView旋转其transform属性,然后通过更改iPad的方向来允许包含它的视图。这可以通过创建一个新的基于视图的iPad项目并将以下代码插入视图控制器来简化:
- (IBAction) rotate:(UIView*)sender {
if (CGAffineTransformIsIdentity(sender.transform)) {
sender.transform = CGAffineTransformMakeRotation(M_PI / 4);
} else {
sender.transform = CGAffineTransformIdentity;
}
}
然后向视图添加单个按钮,并将其操作与上述方法相关联。
如您所见,该方法应该在单击时旋转按钮,然后再次单击时取消旋转 - 它就是这样做的。但是,当按钮旋转,并且你改变方向(从硬件菜单),它将开始表现得非常奇怪 - 改变它的形状或完全消失。
值得注意的是,如果我创建翻译转换,则不会发生这种情况。
我的问题是:
<击> 1。由于我目前没有iPad(正在处理),有人可以告诉我这是否也会在设备上发生? 我在这里做错了吗?也许这不是旋转UIView的方法?如果是,那是什么?
更新:从文档中看来,似乎如果[transform]属性不是identity变换,则frame属性的值是未定义的,因此应该被忽略。所以问题可能是我在更改转换属性时使用 autoresizeMask 这一事实。 那么该怎么做或应该做什么?
谢谢, 阿维亚德。
答案 0 :(得分:0)
我想如果我没记错的话,我会在一段时间内遇到同样的问题,这是由于在Interface Builder中设置了锚点引起的。进入尺寸检查器并关闭将视图固定到授权面板边缘的针脚,我认为应该这样做。
我希望我能正确记住这一点。