How to autorotate from portrait to landscape mode?

2020-05-01 07:16发布

How can I autorotate an image from portrait to landscape mode on the IPhone?

3条回答
▲ chillily
2楼-- · 2020-05-01 08:05

You have to implement shouldAutorotateToInterfaceOrientation method in your controller, like this

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}
查看更多
对你真心纯属浪费
3楼-- · 2020-05-01 08:08

If you want to display a new and different view, the simplest and cleanest solution is to push a new view controller (presentModalViewController) that only supports landscape mode (in shouldAutorotateToInterfaceOrientation:).

查看更多
迷人小祖宗
4楼-- · 2020-05-01 08:20

Apply proper transformation to the view and adjust its frame bounds

In my app I've done it this way (very likely not the best one):

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration: 0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(-M_PI/2);
self.view.bounds = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);

self.view.center = CGPointMake(160.0f, 240.0f);
[UIView commitAnimations];
查看更多
登录 后发表回答