我有一个称为Headerview的UIView,它像NavigationBar一样使用。它的大小恒定为60,上/左/右布局约束为0。由于安全区域布局,因此除iPhone X之外的所有设备都可以正常使用。如果我将尺寸更改为90,则在iPhone X上看起来还可以,但现在在其他设备上看起来不对。我使用以下代码计算安全区域的高度,并将其添加到高度,但是现在在其他设备中看起来很小。解决此问题的最佳方法是什么?

    if (@available(iOS 11.0, *)) {
    UIWindow *window = UIApplication.sharedApplication.keyWindow;
    CGFloat topPadding = window.safeAreaInsets.top;
    self.headerViewHeight.constant = 46 + topPadding;
}

最佳答案

试试这个。检查电话是否为iPhoneX(如果iPhoneX,顶部填充大于0)

if (@available(iOS 11.0, *)) {
    UIWindow *window = UIApplication.sharedApplication.keyWindow;
    CGFloat topPadding = window.safeAreaInsets.top;
    self.headerViewHeight.constant = (topPadding>0) ? 46+topPadding : 60;
 }

关于ios - 使用iPhone X的安全区域指南计算UIView的高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47547551/

10-12 14:39