【问题标题】:UIModalPresentationPopover - arrow direction Up, Prevent Contentview from starting from tip of the arrowUIModalPresentationPopover - 箭头方向向上,防止 Contentview 从箭头尖端开始
【发布时间】:2019-12-18 19:17:38
【问题描述】:

在 iOS 13 中,作为模型呈现的 UIViewcontroller 的视图恰好从箭头的尖端开始。因为它,我所有弹出窗口中的顶部横幅都被剪掉了。我可以防止这种情况发生吗?我希望我的 UIView 不是从箭头开始,而是在箭头完成后。

【问题讨论】:

    标签: uipopovercontroller ios13 uipopover uipopoverpresentationcontroller


    【解决方案1】:

    我不知道他们为什么改变了这种行为,如果你不使用 xibs 可能会很麻烦。我在文档中找不到任何关于它的内容。

    使用安全区域来调整视图的位置。您既可以尝试扩大该红色区域的大小,也可以完全跳过箭头。在这种特殊情况下,如果箭头始终位于顶部,您可以使用 safeAreaInsets.top

    【讨论】:

      【解决方案2】:

      我想知道您的 contentView 是否包含 UIScrollView。如果是,请将alwaysBounceVertical = YES 添加到您的滚动视图中。它适用于我的情况。

      【讨论】:

        【解决方案3】:

        为了解决这个问题,我打开了我的视图控制器的 XIB,选择了最上面的视图,然后在文件检查器下选中了“使用安全区域布局指南”。然后我在该视图的唯一子视图(UITableView)周围添加了自动布局约束(长度为 0)。

        (我还需要更新视图控制器的背景颜色。这会将箭头颜色改回 iOS 12 及之前的颜色。)

        背景:https://forums.developer.apple.com/thread/122703

        【讨论】:

        • 您能否分享您的自动布局约束代码,因为在使用 UITableViewController 时无法在 IB 中执行这些操作
        • @iOSProgrammingIsFun 就我而言,我没有使用UITableViewController。在根视图中只是一个UITableView。在表格视图和周围的安全区域之间设置了约束(“将尾随对齐到:安全区域”、“将顶部对齐到:安全区域”等)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多