@zhangao0086在 iOS13 上也有同样的问题,当你点击取消应用程序崩溃时.. 有任何更新吗?
平...
你好呀!
原因在于 CropViewController 的自定义 VC 转换。 为了解决这个问题,我们必须对 iOS13 中与转换相关的差异进行一些研究,或者……只是禁用它:)
文件:CropViewController.swift,字符串:561。
fileprivate func setUpCropController() {
addChild(toCropViewController)
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
toCropViewController.delegate = self
toCropViewController.didMove(toParent: self)
}
要使用默认过渡,我们可以注释/删除这一行:
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
我认为这个问题不仅仅是自定义转换的问题。 我通过从弹出窗口中的 UIImagePickerController 推送控制器来呈现控制器。 iOS 13 中的弹出框包含视图中的箭头,因此该控制器现在认为它比实际大,并为箭头占用了额外的空间。 因此,如果箭头在右侧,则该控制器的内容会从右侧的屏幕上泄漏,等等。需要使用安全区域修改某些内容,但我不确定如何解决此问题 - 特别是因为它都是以编程方式完成的并且涉及多种观点。
我相信需要以某种方式使用 safeAreaLayoutGuide 来解决这个问题。 我刚刚浏览了代码,看起来它没有包含在任何地方。 希望我能得到更多帮助。 以下是人们遇到此问题的更多地方,其中还包括一些可能解决此问题的方法:
https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13
此外,如果这已在当前代码中修复,我可能在使用 Carthage 时看不到它,尽管我刚刚检查过并且没有更新
这事有进一步更新吗? @蒂姆奥利弗
嗨@zhangao0086。 非常感谢提供全面的示例应用程序!
我现在正忙于在我的其他一些项目中扑灭 iOS 13 火灾,所以我还没有机会看到这个。 对不起!
有空我会研究一下。 同时,如果有人找到修复程序并可以提交 PR,那将不胜感激!
我最初将CropViewController
作为一个单独的视图控制器,因为当时不可能将TOCropViewController
的所有 Objective-C 接口都转换为 Swift。 但我认为互操作性已经提高到我们现在可以抛弃包装器的程度。 希望这将防止将来出现此类问题。
@TimOliver感谢您的回复! 我完全理解你😃
嗨@zhangao0086! 抱歉耽搁了!
我终于有一些空闲时间来检查发生了什么。 这很奇怪,因为即使在父容器级别,除了缺口之外, safeAreaInsets
都是 0。
我想我修复了它。 这是新的 iOS 13 模态显示的另一个副作用。 事实证明,如果您不将modalPresentationStyle
为.fullScreen
,视图控制器似乎不遵守插图。
我还没有发布新的 pod 版本(当我将它更新到 Catalina 时,我的 CI 服务器崩溃了。😅),但是我在 master 分支中添加了.fullScreen
标志。 您能否尝试从 master 拉取并查看它现在是否适合您?
通过 CocoaPods 从 master 拉取的语法是:
pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'
谢谢!
@TimOliver 非常感谢您的出色工作!
精彩的! 它完全按照我的预期工作! 👍
我还必须在我的代码中设置cropViewController.modalPresentationStyle = .fullScreen
(不仅仅是更新到主分支)。 在此处添加注释,因为我不清楚
此修复程序似乎仅适用于 Swift 代码。 有谁知道为什么它在目标 C 中不起作用?
最有用的评论
嗨@zhangao0086! 抱歉耽搁了!
我终于有一些空闲时间来检查发生了什么。 这很奇怪,因为即使在父容器级别,除了缺口之外,
safeAreaInsets
都是 0。我想我修复了它。 这是新的 iOS 13 模态显示的另一个副作用。 事实证明,如果您不将
modalPresentationStyle
为.fullScreen
,视图控制器似乎不遵守插图。我还没有发布新的 pod 版本(当我将它更新到 Catalina 时,我的 CI 服务器崩溃了。😅),但是我在 master 分支中添加了
.fullScreen
标志。 您能否尝试从 master 拉取并查看它现在是否适合您?通过 CocoaPods 从 master 拉取的语法是:
谢谢!