Tocropviewcontroller: SafeAreaInsets est-il incorrect ?

Créé le 25 sept. 2019  ·  14Commentaires  ·  Source: TimOliver/TOCropViewController

Merci pour la bibliothèque géniale! ??

Qu'essayez-vous de réaliser exactement avec cette bibliothèque ?
J'ai juste une question. La position de la barre d'outils trop près du bas :

A-t-il un safeAreaInsets.bottom incorrect ?

Besoin d'un exemple de projet reproductible ? TestSafeArea.zip

bug rfc

Commentaire le plus utile

Salut @zhangao0086 ! Désolé pour le retard!

J'ai enfin eu du temps libre pour examiner ce qui se passait. C'était étrange car même au niveau du conteneur parent, les safeAreaInsets étaient 0 à l'exception de l'encoche.

Je pense que je l'ai corrigé cependant. C'était un autre effet secondaire du nouvel affichage modal iOS 13. Il s'avère que si vous ne définissez pas modalPresentationStyle sur .fullScreen , le contrôleur de vue ne semble pas obéir aux encarts.

Je n'ai pas encore envoyé de nouvelle version de pod (mon serveur CI est tombé en panne lorsque je l'ai mis à jour vers Catalina. 😅), mais j'ai ajouté le drapeau .fullScreen à la branche master. Pouvez-vous s'il vous plaît essayer de tirer du maître et voir si cela fonctionne pour vous maintenant ?

La syntaxe à extraire du master via CocoaPods est :

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

Merci!

Tous les 14 commentaires

@ zhangao0086 même problème ici sur iOS13, également lorsque vous appuyez sur Annuler l'application se bloque .. des mises à jour à ce sujet ?

ping...

Salut!
La raison en est une transition VC personnalisée de CropViewController. Pour résoudre ce problème, nous devons faire des recherches sur les différences dans iOS13 liées à la transition ou... il suffit de le désactiver :)
fichier : CropViewController.swift, chaîne : 561.

fileprivate func setUpCropController() {
        addChild(toCropViewController)
        transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
        toCropViewController.delegate = self
        toCropViewController.didMove(toParent: self)
    }

Pour utiliser une transition par défaut, nous pouvons commenter/supprimer cette ligne :

transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)

Je ne pense pas que ce problème soit uniquement une question de transition personnalisée. Je présente le contrôleur en le poussant depuis un UIImagePickerController dans un popover. Le popover dans iOS 13 inclut la flèche dans la vue, donc ce contrôleur pense maintenant qu'il est plus grand qu'il ne l'est et prend l'espace supplémentaire pour la flèche. Donc, si la flèche est sur le côté droit, le contenu de ce contrôleur fuit de l'écran sur le côté droit, etc. Quelque chose doit être modifié avec une zone de sécurité, mais je ne sais pas ce qui résoudrait cela - d'autant plus que tout est fait par programmation et il y a plusieurs points de vue impliqués.

Je pense que le safeAreaLayoutGuide doit être utilisé d'une manière ou d'une autre, quelque part pour résoudre ce problème. Je viens de parcourir le code et il ne semble pas qu'il soit inclus nulle part. J'aimerais pouvoir être plus utile. Voici quelques autres endroits où les gens rencontrent ce problème, qui incluent également certaines façons de l'aborder :

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

De plus, si cela a été corrigé dans le code actuel, il se peut que je ne le voie pas car j'utilise Carthage, bien que je viens de vérifier et qu'il n'y ait pas de mises à jour

Une mise à jour pour ceci? @TimOliver

Salut @ zhangao0086. Merci beaucoup pour l'exemple d'application complet !

Je suis actuellement occupé à éteindre les incendies iOS 13 dans certains de mes autres projets, donc je n'ai pas encore eu l'occasion de regarder cela. Désolé!

Je vais me renseigner quand je peux. En attendant, si quelqu'un trouve le correctif et peut soumettre un PR, ce serait très apprécié !

J'ai initialement fait de CropViewController un contrôleur de vue séparé car il n'était pas possible de convertir toute l'interface Objective-C de TOCropViewController en Swift à l'époque. Mais je pense que l'interopérabilité s'est améliorée au point où nous pouvons potentiellement abandonner le wrapper maintenant. Espérons que cela évitera des problèmes comme celui-ci à l'avenir.

@TimOliver Merci pour votre réponse ! Je te comprends tout à fait

Salut @zhangao0086 ! Désolé pour le retard!

J'ai enfin eu du temps libre pour examiner ce qui se passait. C'était étrange car même au niveau du conteneur parent, les safeAreaInsets étaient 0 à l'exception de l'encoche.

Je pense que je l'ai corrigé cependant. C'était un autre effet secondaire du nouvel affichage modal iOS 13. Il s'avère que si vous ne définissez pas modalPresentationStyle sur .fullScreen , le contrôleur de vue ne semble pas obéir aux encarts.

Je n'ai pas encore envoyé de nouvelle version de pod (mon serveur CI est tombé en panne lorsque je l'ai mis à jour vers Catalina. 😅), mais j'ai ajouté le drapeau .fullScreen à la branche master. Pouvez-vous s'il vous plaît essayer de tirer du maître et voir si cela fonctionne pour vous maintenant ?

La syntaxe à extraire du master via CocoaPods est :

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

Merci!

@TimOliver Merci beaucoup pour votre excellent travail !

Merveilleux! Cela fonctionne exactement comme je l'attendais ! ??

J'ai également dû définir cropViewController.modalPresentationStyle = .fullScreen dans mon code (pas seulement mettre à jour la branche master). Ajouter une note ici car ce n'était pas clair pour moi

Ce correctif semble fonctionner uniquement pour le code Swift. Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas dans l'objectif C ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

muranobu picture muranobu  ·  4Commentaires

rnkyr picture rnkyr  ·  4Commentaires

kcankaynak picture kcankaynak  ·  4Commentaires

mugunth87 picture mugunth87  ·  5Commentaires

felipebonezi picture felipebonezi  ·  6Commentaires