求教:横竖屏视图切换后,屏幕视图位置不正确,错在了那里?

发布于 2022-09-06 22:22:51 字数 1482 浏览 12 评论 0

初学iOS开发,没有参加商业培训班,有些不懂请教大家。
在做屏幕旋转的效果时,我使用了二个视图切换的方法来处理横竖屏。初始竖屏切换到横屏后能够正常显示,但是转会到竖屏时却出现了视图偏移的问题。
我想请问,这个问题是怎么产生的?我该如何修正?

下面是我实现的代码

  • -(BOOL)shouldAutorotate { return YES; }
  • -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [super willRotateToInterfaceOrientation:(UIInterfaceOrientationPortrait |UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight) duration:0.5];
    if ( toInterfaceOrientation == UIInterfaceOrientationPortrait ) {

    self.view.bounds = CGRectMake(0, 0, 375, 667);
    self.view.frame = CGRectMake(0, 0, 375, 667);
    self.view = self->_portraitView;//_portraitView是竖屏显示的视图
            ...

    }
    else if ( toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ) {

    self.view.bounds = CGRectMake(0, 0, 667, 375);
    self.view.frame = CGRectMake(0, 0, 667, 375);
    self.view = self->_landscapeView;//_landscapeView是横屏显示的视图
            ...

    }
    else if ( toInterfaceOrientation == UIInterfaceOrientationLandscapeRight ) {

    self.view.bounds = CGRectMake(0, 0, 667, 375);
    self.view.frame = CGRectMake(0, 0, 667, 375);
    self.view = self->_landscapeView;
            ...

    }

}
初始的竖屏北京整个都是黄色的。旋转之后就成这个样子了。
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文