Tocropviewcontroller: Afficher la zone du cercle mais recadrer avec rect ?

Créé le 15 sept. 2017  ·  5Commentaires  ·  Source: TimOliver/TOCropViewController

Salut tout le monde!

J'aimerais savoir s'il est possible de montrer la zone de recadrage circulaire aux utilisateurs, mais au lieu de recadrer l'image avec un cercle, il suffit de la recadrer avec le rectangle min contenant ce cercle, cela a-t-il du sens?

Merci!

question rfc

Commentaire le plus utile

Ouf ! Je ne savais pas que :

- (void)cropViewController:(TOCropViewController *)cropViewController didCropToImage:(UIImage *)image withRect:(CGRect)cropRect angle:(NSInteger)angle

le délégué a été appelé même si je définissais la zone de recadrage sur circulaire :)

Merci beaucoup Tim ! Acclamations!

Agus.

Tous les 5 commentaires

Salut @agusguerra10 !

Si vous voulez juste la CGRect d'une image, même en mode circulaire, il vous suffit d'implémenter la méthode déléguée - (void)cropViewController:(TOCropViewController *)cropViewController didCropImageToRect:(CGRect)cropRect angle:(NSInteger)angle . :)

Vous pouvez également implémenter - (void)cropViewController:(TOCropViewController *)cropViewController didCropToImage:(UIImage *)image withRect:(CGRect)cropRect angle:(NSInteger)angle si vous voulez une copie carrée de cette image.

J'espère que cela a aidé ! Dites moi si vous cherchez autre chose !

Ouf ! Je ne savais pas que :

- (void)cropViewController:(TOCropViewController *)cropViewController didCropToImage:(UIImage *)image withRect:(CGRect)cropRect angle:(NSInteger)angle

le délégué a été appelé même si je définissais la zone de recadrage sur circulaire :)

Merci beaucoup Tim ! Acclamations!

Agus.

Ah bon?
je cherche la réponse à cette question.
j'ai mis le style circulaire.
mais pas appeler la fonction déléguée
func cropViewController (_ cropViewController : TOCropViewController, didCropToImage image : UIImage, rect cropRect : CGRect, angle : Int)

j'ai résolu le problème

  • (void)cropViewController:(TOCropViewController *)cropViewController didCropImageToRect:(CGRect)cropRect angle:(NSInteger)angle

cette méthode déléguée sera appelée même si la zone de recadrage est définie sur circulaire.
dans le délégué, j'utilise le - (non null UIImage *) croppedImageWithFrame:(CGRect)frame angle:(NSInteger)angle circularClip:(BOOL)circular ;
pour le recadrer pour obtenir l'image recto. mais vous devez définir circularClip sur false.

Je veux demander à Tim, c'est vrai ?
ce que agusguerra10 a dit ne s'appelle pas dans mon projet. xcode9 swift4.

  • (void)cropViewController:(TOCropViewController *)cropViewController didCropToImage:(UIImage *)image withRect:(CGRect)cropRect angle:(NSInteger)angle
    J'ai également testé l'exemple de code. il ne sera pas appelé aussi si vous définissez le style circulaire

Pas de soucis @agusguerra10 ! Oui, rétrospectivement, ce n'était pas un bon modèle de logique basé sur les méthodes de délégué que le délégué a implémentées ; cela a causé un peu de confusion. 😅

@agusguerra10 Je viens de vérifier le code pour gérer les rappels des délégués . C'est correct. Si vous implémentez l'une des méthodes déléguées circulaires en mode circulaire, celle qui renvoie une image carrée est ignorée.

Si vous pensez que cela devrait être modifié, il serait peut-être préférable de le suivre dans un nouveau numéro. Merci! :)

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