[Résolu] NSAttributedString : Alignement d'une image

iLandesiLandes Membre
août 2016 modifié dans Objective-C, Swift, C, C++ #1

Je suis en train d'explorer les NSAttributedString. Mon idée est de placer une image en haut à  gauche de mon paragraphe et que ma chaine de caractère remplisse l'espace à  droite puis en dessous de l'image.


 


J'y suis presque. Je galère sur l'alignement, en effet il n'y qu'une ligne à  droite de mon image. J'aimerai en mettre plusieurs et spécifier la distance à  droite entre l'image et le texte.


 


En image cela donne ça :


 


Réponses

  • Une piste ici peut être.


  • Merci Lexxis,


     


    Je viens de passer mon après-midi sur stackoverflow en vain


  • C'est dingue comme des choses si simple en html par exemple sont si difficile à  mettre en oe“uvre sur iOS  ;D


     


    Je cherche toujours...


  • Pourtant les ExclusionPath répondent parfaitement à  ta demande  ???




  • C'est dingue comme des choses si simple en html par exemple sont si difficile à  mettre en oe“uvre sur iOS  ;D


     


    Je cherche toujours...




     


    A Mince... Moi qui croyais t'avoir un peu aidé... 


     


    Qu'est ce qui ne fonctionne pas avec les ExclusionPath ?

  • Les exclusions se font bien mais du coup l'image ne fait plus partie de mon attributed string.


     


    En cassant la dépendance entre le texte et l'image si le texte est long et que l'utilisateur déplace l'ascenseur latéral vertical ça ne suit pas...


  • Un NSTextAttachment semble être considéré comme un seul caractère au sein d'un NSAttributedString ce qui semble ne pas permettre ce que tu veux faire.

     

     



    Les exclusions se font bien mais du coup l'image ne fait plus partie de mon attributed string.



     


    Effectivement, mais cela semble être la seule alternative.

     



    En cassant la dépendance entre le texte et l'image si le texte est long et que l'utilisateur déplace l'ascenseur latéral vertical ça ne suit pas...




    J'ai fait un test rapide avec une UITextView et une image sans avoir ce problème. Tu as bien ajouté l'image en tant qu'enfant de l'UITextView ?


     


    J'ai lu dans un post qu'il y a une video WWDC de 2013 concernant CoreText et qui aborde ce sujet. A voir peut être.


  • Tout d'abord, merci pour ton aide


     


     



    J'ai fait un test rapide avec une UITextView et une image sans avoir ce problème. Tu as bien ajouté l'image en tant qu'enfant de l'UITextView ?




     


    Qu'entends tu par enfant ? Tu peux m'envoyer ton code pour que je comprenne ?


     


    Merci encore


  • un simple addSubview en fait



    let imgRect = UIBezierPath(rect: CGRect(x: 0, y: 0, width: 178 + 5, height: 178 + 5))
    self.textView.textContainer.exclusionPaths = [imgRect]

    let image = UIImage(named: "moi")
    let imageView = UIImageView(image: image)

    let point = CGPoint(x: self.textView.textContainerInset.left, y: self.textView.textContainerInset.top)

    imageView.frame.origin = point
    self.textView.addSubview(imageView)

  • Merci beaucoup Lexxis pour ton aide.


     


    Ca marche nickel !


Connectez-vous ou Inscrivez-vous pour répondre.