2010-12-02 32 views
21

Je développe actuellement une application de retouche de texte simple pour iPad. Je veux définir les marges gauche/droite comme l'image ci-jointe. Le fait d'ajouter UITextView à un autre UIView de plus grande largeur ne fonctionnera pas car un indicateur de défilement ne sera pas correctement positionné. Au lieu de UIView, j'ai ajouté UITextView dans UIScrollView, et cela fonctionne presque correctement. Mais ils montrent parfois des comportements étranges, et UITextViewDelegate ne fonctionne pas avec mon UIViewController.Comment définir une marge dans UITextView?

Est-il possible de définir les marges gauche/droite uniquement en utilisant UITextView? Merci.

alt text

Répondre

6

UITextView est une sous-classe de UIScrollView. Je ne l'ai pas essayé, mais vous pouvez essayer quelque chose comme:

myTextView.contentInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f); 

UIEdgeInsetsMake() se présente comme suit:

UIEdgeInsets UIEdgeInsetsMake (
    CGFloat top, 
    CGFloat left, 
    CGFloat bottom, 
    CGFloat right 
); 

donc vous devriez être en mesure pour insérer le contenu de votre textView.

Espérons que cela aide, laissez-moi savoir si cela fonctionne !! :)

+1

fonctionne comme prévu –

+7

Cela ne marche pas vraiment pour moi. Bien sûr, les marges sont ajoutées, mais elles sont ajoutées en dehors des limites de UITextView. Le résultat est un affichage de texte qui commence au niveau du bord, mais vous pouvez le faire défiler jusqu'à la marge. Qu'est-ce que je rate? –

4

Je voulais faire la même chose, mais textview.contentInset ne fonctionnait pas.

Je mets UITextView avec une largeur étroite sur UIView, puis déplace l'indicateur scrollview de textview sur le côté droit, donc j'ai obtenu ce que je voulais vraiment bien.

textView.clipsToBounds = NON; textView.scrollIndicatorInsets = UIEdgeInsetsMake (0.0f, 0.0f, 0.0f, -20.0f);

Cette réponse pourrait vous aider. Is there a way to put UITextView's scroll indicator to outside UITextView?

1

Vous pouvez définir la valeur d'incrustation droite de l'UITextView sur la valeur négative et désactiver l'option de sous-vue du clip pour atteindre votre besoin. Aucune autre scrollview n'est nécessaire. Select textview on storyboard first

Dans le code, il serait

textView.clipsToBounds = NO; 
textView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, -50.0f); 
8

Vous pouvez utiliser la propriété textContainerInset

Suivant l'exemple de George vert:

myTextView.textContainerInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f); 
+1

Cela fonctionne uniquement pour les applications qui ciblent> = iOS 7.0 – Hemang

+0

Oui, uniquement> = iOS 7.0 – NES8