【问题标题】:iOS 13 UIImagePickerController Image/Video grid goes behind navigation bariOS 13 UIImagePickerController 图像/视频网格位于导航栏后面
【发布时间】:2020-03-02 23:20:58
【问题描述】:

我遇到了UIImagePickerController 的问题。我以全屏形式呈现。问题是图像网格位于导航栏后面。我什至尝试过一种新的外观代理,但没有运气。这是该问题的视频链接。

UIImagePickerController issue

如果有人知道,请告诉我。

【问题讨论】:

    标签: objective-c uiimagepickercontroller ios13


    【解决方案1】:

    从 iOS 7.0 开始,所有视图都会自动位于导航栏、工具栏和选项卡栏后面,以提供 Apple 所谓的“上下文”——了解 UI 下方的内容(尽管被磨砂玻璃效果模糊)为用户提供了想一想屏幕外还有什么。

    如果这妨碍了您(老实说,它确实经常令人惊讶地妨碍您),您可以通过修改其 edgesForExtendedLayout 属性轻松地为给定的视图控制器禁用它。

    例如,如果您不希望视图控制器出现在任何栅栏后面,请使用以下代码:

    edgesForExtendedLayout = []

    对于您的情况,您可以像这样使用它:

    yourvc.edgesForExtendedLayout = []
    

    为了您的参考,我还附上了一个链接,该链接也是answers您的问题。

    【讨论】:

    • 为什么我们在 iOS 12 之前不需要设置这个?该问题仅出现在 iOS 13 中
    • 即使我们需要设置这个我们不能为此使用外观api吗?
    • 这个问题过去也出现过。我认为它已被苹果修复,现在又回来了,因此您可以使用 if #available(iOS 13.0, *) {} 检查 iOS 版本
    • @Rahul 如果答案对您有用,请点赞并接受。
    • @property(nonatomic,assign) UIRectEdge edgesForExtendedLayout API_AVAILABLE(ios(7.0)); // 默认为 UIRectEdgeAll
    【解决方案2】:

    我最近遇到了同样的问题(iOS13)。

    通过在显示图像选择器之前将 UIScrollViewContentInsetAdjustmentAutomatic 设置为 [UIScrollView 外观] 解决了我的问题。仅供参考。

        if (@available(iOS 11.0, *)) {
            [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentAutomatic];
        }
    

    因为在我的项目中有设置 UIScrollViewContentInsetAdjustmentNever 的代码。

    记住在图像选择器完成工作后将值重置为 UIScrollViewContentInsetAdjustmentNever。

    【讨论】:

      猜你喜欢
      • 2019-11-13
      • 1970-01-01
      • 2017-04-11
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多