web-dev-qa-db-fra.com

IOS - supprime TOUT le rembourrage de UITextView

Il existe de nombreux excellents exemples sur SO pour supprimer le remplissage gauche d'un UITextView.

Comment perdre la marge/le remplissage dans UITextView?

Cependant, je dois également retirer le bon rembourrage.

J'ai essayé...

[tv setContentInset: UIEdgeInsetsMake(-4,-8,-8,-X)];//where X is any integer

et à peu près toutes les autres permutations des deux dernières valeurs pour supprimer le remplissage et rien ne semble fonctionner. Ont également essayé

[tv sizeToFit];
[tv setTextAlignment:[NSTextAlignmentRight]];

Le texte suivant dans le Textview indique "00"

enter image description here

44
mattyd

Bien qu'il s'agisse uniquement d'iOS 7, une solution extrêmement propre consiste à définir les textContainerInsets de textView comme tels:

[textView setTextContainerInset:UIEdgeInsetsZero];
textView.textContainer.lineFragmentPadding = 0; // to remove left padding

Cela supprimera efficacement tout le remplissage (encarts) autour du texte à l'intérieur de la vue de texte. Si votre cible de déploiement est iOS 7+, c'est la meilleure solution à ce jour.

159
dbart

Pour supprimer complètement tout remplissage, le lineFragmentPadding doit être pris en compte.

let padding = textView.textContainer.lineFragmentPadding
textView.textContainerInset = UIEdgeInsetsMake(0, -padding, 0, -padding)

La valeur par défaut lineFragmentPadding est 5 et se trouve au début et à la fin du rectangle de fragment.

Certaines réponses ont suggéré de définir lineFragmentPadding sur 0. Cependant, comme indiqué dans le document, il n'est pas conçu pour exprimer les marges de texte. Ne le mettez donc pas à 0.

14
samwize

Veuillez essayer de sous-classer UITextView et de remplacer la méthode suivante:

    - (id)styleString
{
    return [[super styleString] stringByAppendingString:@"; line-height: 1.6em;margin-right: 30px; margin-left: 0px; margin-top: 0px;"];
}

Apparemment; vous pouvez modifier la marge gauche, la marge supérieure et tout ce que vous voulez;)

7
Mohamed A.Karim