Tocropviewcontroller: safeAreaInsetsは正しくありませんか?

作成日 2019年09月25日  ·  14コメント  ·  ソース: TimOliver/TOCropViewController

素晴らしいライブラリをありがとう! 👍

このライブラリで正確に何を達成しようとしていますか?
質問が1つだけあります。 ツールバーの位置が下部に近すぎます:

それは間違ったsafeAreaInsets.bottomですか?

再現可能なサンプルプロジェクトが必要ですか? TestSafeArea.zip

bug rfc

最も参考になるコメント

こんにちは@ zhangao0086! 遅れて申し訳ありません!

私はついに何が起こっているのかを調べるための自由な時間を得ることができました。 親コンテナレベルでも、ノッチを除いてsafeAreaInsetsが0だったので、奇妙

私はそれを修正したと思います。 これは、新しいiOS13モーダルディスプレイのもう1つの副作用でした。 modalPresentationStyle.fullScreenに設定しないと、ビューコントローラーが挿入図に従わないように見えます。

新しいポッドリリースはまだ出荷していませんが(カタリナに更新したときにCIサーバーが倒れました。😅)、マスターブランチに.fullScreenフラグを追加しました。 マスターから引っ張って、それが今あなたのために働くかどうか見てみてください。

CocoaPodsを介してマスターからプルする構文は次のとおりです。

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

ありがとう!

全てのコメント14件

@ zhangao0086 iOS13でも同じ問題が発生します。[アプリをキャンセル]をタップするとクラッシュします。これに関する更新はありますか?

ping .. ..

やあ!
その理由は、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/57988889/ios-13-uipopoverpresentationcontroller-sourceview-content-visible-in-the-arrow

https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13

また、これが現在のコードで修正されている場合、チェックしたばかりで更新はありませんが、Carthageを使用しているために表示されない可能性があります

これに関する更新はありますか? @TimOliver

こんにちは@ zhangao0086。 包括的なサンプルアプリをありがとう!

私は今、他のいくつかのプロジェクトでiOS 13の火を消すのに忙しいので、これを見る機会はまだありません。 ごめん!

できれば調べます。 それまでの間、誰かが修正を見つけてPRを送信できる場合は、それをいただければ幸いです。

当時、 TOCropViewControllerのObjective-CインターフェースのすべてをSwiftに変換することはできなかったので、私はもともとCropViewControllerを別のビューコントローラーにしました。 しかし、相互運用性は改善され、ラッパーを捨てることができるようになったと思います。 うまくいけば、それは将来このような問題を防ぐでしょう。

@TimOliver返信ありがとうございます! 私はあなたを完全に理解しています😃

こんにちは@ zhangao0086! 遅れて申し訳ありません!

私はついに何が起こっているのかを調べるための自由な時間を得ることができました。 親コンテナレベルでも、ノッチを除いてsafeAreaInsetsが0だったので、奇妙

私はそれを修正したと思います。 これは、新しいiOS13モーダルディスプレイのもう1つの副作用でした。 modalPresentationStyle.fullScreenに設定しないと、ビューコントローラーが挿入図に従わないように見えます。

新しいポッドリリースはまだ出荷していませんが(カタリナに更新したときにCIサーバーが倒れました。😅)、マスターブランチに.fullScreenフラグを追加しました。 マスターから引っ張って、それが今あなたのために働くかどうか見てみてください。

CocoaPodsを介してマスターからプルする構文は次のとおりです。

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

ありがとう!

@TimOliver素晴らしい仕事をありがとう!

素晴らしい! 期待どおりに動作しています! 👍

また、コードにcropViewController.modalPresentationStyle = .fullScreenを設定する必要がありました(マスターブランチに更新するだけではありません)。 ここにメモを追加するのは私にはわかりませんでした

この修正は、Swiftコードでのみ機能するようです。 なぜそれがObjectiveCで機能しないのか誰かが知っていますか?

このページは役に立ちましたか?
0 / 5 - 0 評価