【问题标题】:How to get modal presented view controller's root view height?如何获得模态呈现的视图控制器的根视图高度?
【发布时间】:2021-10-11 22:59:39
【问题描述】:

对于像下图所示的 Settings 这样的视图控制器,如何在不依赖 AutoLayout 的情况下获取视图控制器的视图高度?

是否有任何系统变量或宏我们可以使用像UIScreen.main.bounds.size 来获取 屏幕尺寸?

AutoLayout 对我不好,因为我需要预先计算框架以进一步显示。

【问题讨论】:

  • view.bounds.height 工作吗?
  • 你能说说知道这个高度的目的是什么吗?也许我们可以想出一些其他的解决方案。

标签: ios swift viewcontroller


【解决方案1】:
  1. 首先通过view.frame.height获取当前视图高度
  2. 然后通过UIScreen.main.bounds.height获取主屏幕高度(设备屏幕高度)
  3. 然后从主屏幕高度减去当前视图高度。

下面是示例代码:-

let currentViewHeight:CGFloat = view.frame.height
let mainScreenHeight:CGFloat = UIScreen.main.bounds.height
let heightYouNeed = mainScreenHeight-currentViewHeight

这里 view 是正在呈现的 UIView。

【讨论】:

    【解决方案2】:

    您需要在什么时候计算它?我认为之前建议减去UIScreen.main.bounds.height - view.frame.height 的答案应谨慎使用,因为在viewDidLoad 中的实际帧将与viewDidAppear 中的不同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      相关资源
      最近更新 更多