在可可触摸旋转的UIView(Rotate UIView in Cocoa Touch)

2019-08-03 02:19发布

我见过谁都有过这样的问题,但大部分的答复不工作最新的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为了使这种/其他代码的功能,或者是有做同样的事情的一个更好的办法?

谢谢你的帮助!

Answer 1:

这对我的作品

 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;


Answer 2:

我的成功与:

CATransform3D rotationTransform = CATransform3DIdentity;
[view.layer removeAllAnimations];
rotationTransform = CATransform3DRotate(rotationTransform, angle, 0.0, 0.0, 1);
view.layer.transform = rotationTransform;


Answer 3:

不知道这是否被认为是私有的API,所以你可能不希望使用它,但如果你想迫使方向更改,恕不倾斜设备,你可以尝试调用:

[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
                      withObject:(id)UIInterfaceOrientationLandscapeLeft];

我没有测试,它仍然适用于3.1.2。 虽然我知道它适用于3.0。



文章来源: Rotate UIView in Cocoa Touch