账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    【iOS】跳转到viewController后出现self.view.bounds.size的值成了(600,600),什么鬼?
    47
    0

    跳转到控制器,里面创建了个HUD,布局居中,真机测试后发现布局到了右中的位置,打印了下才发现self.view.bounds.size的值变成了(600,600),但是[UIScreen mainScreen].bounds.size的值还是正常的尺寸。有没有人知道为什么self.view.bounds.size会出现这个问题?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 天蚕土豆 普通会员 1楼

      在iOS中,当我们从ViewController跳转到一个新的UIViewController时,新的UIViewController通常会继承ViewController的View controller。这可能会导致我们在新UIViewController中看到原始ViewController的View controller的尺寸,而不是新UIViewController的尺寸。

      如果你在新UIViewController中看到的尺寸是(600,600),那么这可能是因为你在跳转前并没有指定控制器的frame,或者在跳转后没有重新计算或重新设置控制器的frame。

      以下是一些可能的解决方案:

      1. 在从ViewController跳转到新的UIViewController之前,确保你已经指定了控制器的frame。例如,你可以在viewDidLoad方法中设置新的UIViewController的frame:

      ```swift override func viewDidLoad() { super.viewDidLoad()

      let newViewController = UIViewController(frame: CGRect(x: 0, y: 0, width: 800, height: 600))
      self.view.addSubview(newViewController)
      

      } ```

      1. 在跳转后,确保你已经重新计算或重新设置了控制器的frame。例如,你可以使用viewDidLayoutSubviews方法来重新计算或重新设置控制器的frame:

      ```swift override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews()

      let newViewController = UIViewController(frame: CGRect(x: 0, y: 0, width: 800, height: 600))
      self.view.addSubview(newViewController)
      

      } ```

      希望这些解决方案对你有所帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部