我见过谁都有过这样的问题,但大部分的答复不工作最新的3.0构建iPhone OS的其他人。 无论如何,我想知道怎样才能编程转动一个UIView,而不从加速度计任何输入。 到目前为止,我已经找到的代码:
CGAffineTransform transform = CGAffineTransformMakeRotation(3.14159/2);
view.transform = transform;
CGRect contentRect = CGRectMake(-80, 80, 480, 320);
view.bounds = contentRect;
然而,这不适用于UIView的工作(在我的测试)。 有什么我必须做我的AppDelegate为了使这种/其他代码的功能,或者是有做同样的事情的一个更好的办法?
谢谢你的帮助!
这对我的作品
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_2);
self.view.transform = transform;
// Repositions and resizes the view.
CGRect contentRect = CGRectMake(0,0, 480, 320);
self.view.bounds = contentRect;
我的成功与:
CATransform3D rotationTransform = CATransform3DIdentity;
[view.layer removeAllAnimations];
rotationTransform = CATransform3DRotate(rotationTransform, angle, 0.0, 0.0, 1);
view.layer.transform = rotationTransform;
不知道这是否被认为是私有的API,所以你可能不希望使用它,但如果你想迫使方向更改,恕不倾斜设备,你可以尝试调用:
[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
withObject:(id)UIInterfaceOrientationLandscapeLeft];
我没有测试,它仍然适用于3.1.2。 虽然我知道它适用于3.0。