iPhone 开发 - 手动旋转视图
-
10-07-2019 - |
题
如何使用 autoresizingMasks 手动旋转视图,就好像用户旋转了手机并且它已自动旋转一样。我也希望它是即时的,没有动画。我你想知道为什么我需要这个,看看我的其他问题 iPhone Dev - 保持界面旋转.
谢谢!!
解决方案
您想要在这里做的是使用仿射变换来旋转您的视图,我已经完成了这一点,尽管我目前没有代码。如果你做了一个简单的旋转,你会发现你的视图将被切断,而不是像你想要的那样位于中心,你需要在这里做的是设置图层的锚点(调整该值,直到得到你想要的)以便视图出现在您想要的位置。解决这个问题的方法就是进行 90 度仿射变换旋转并查看它对视图的影响。这样您应该能够弄清楚图层锚点需要在哪里。稍后当我在我的 Mac 面前时,我会在这里发布一些示例代码。希望能帮助到你
其他提示
我不太明白你的意思
“……使用 autoresizingMasks ...”
我对 UIIView 动画做了同样的事情。还有很多其他技术。这是我的代码:
-(void)rotateToLandscape
{
UIWindow *win = [[UIApplication sharedApplication]keyWindow];
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
[[[UIApplication sharedApplication] keyWindow] setBackgroundColor:[UIColor blackColor]];
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
win.transform = CGAffineTransformIdentity;
win.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
win.bounds = CGRectMake(0.0f, 0.0f, 480, 320);
win.center = CGPointMake(160.0f, 240.0f);
[UIView commitAnimations];
}
}
// 我希望代码不需要解释。
//您可以删除动画语句以获得您想要的效果(非动画)。
不隶属于 StackOverflow