如何使用 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];
}   

}

// 我希望代码不需要解释。
//您可以删除动画语句以获得您想要的效果(非动画)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top