在iPhone XS Max和iPhone XR上无法正确显示具有演示文稿样式formSheet的Modal UIViewController

问题描述 投票:1回答:1

我有一个模块化的视图控制器。其演示样式设置为表单。

func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
    return .formSheet
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    segue.destination.presentationController?.delegate = self
}

在iPhone X和iPhone 8 Plus上,它按预期工作,在iPhone Xs Max和Xr上,控制器的宽度受到尊重,但高度被严格拉伸。我无法确认这是否是模拟器错误,iOS错误或预期的行为,因为我自己没有Xs Max。 enter image description here

ios uikit modalviewcontroller iphone-xs-max iphone-xr
1个回答
0
投票

更好地使用模式表示样式overFullScreen用于紧凑的水平尺寸类,并将表单Sheet保留为水平常规类。

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
    if controller.traitCollection.horizontalSizeClass == .regular {
        return .formSheet
    }
    return .overFullScreen
 }
© www.soinside.com 2019 - 2024. All rights reserved.