如何使用 autoresizingMasks 手动旋转视图,就好像用户旋转了手机并且它已经自动旋转了一样。我也希望它是即时的,没有动画。我你想知道我为什么需要这个,看看我在iPhone Dev 的另一个问题 - 保持界面旋转。
谢谢!!
如何使用 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];
}
}
// 我希望代码不需要解释。
//可以去掉动画语句,得到你想要的效果(非动画)。