J'ai UITextView avec du texte dedans. Tout allait bien avec iOS 6, mais maintenant avec iOS 7, il laisse l'espace vide en haut, puis place le texte en dessous du milieu de la vue de texte.
Je n'ai défini aucun contentOffSet. Veuillez aider!
ios
iphone
xcode
cocoa-touch
uitextfield
Ali Sufyan
la source
la source
La réponse actuelle qu'IronManGill a donnée n'est pas une bonne solution, car elle n'est pas basée sur une compréhension de la raison pour laquelle le problème se produit en premier lieu.
La réponse de jrturton n'est pas non plus le moyen le plus propre de le résoudre. Vous n'avez pas besoin de passer outre. Rester simple!
Tout ce dont vous avez besoin est de définir les paramètres suivants:
dans la méthode viewDidLoad.
Consultez la documentation: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
la source
automaticallyAdjustsScrollViewInsets
est obsolète. Depuis iOS11, utilisezcontentInsetAdjustmentBehavior
Dans le générateur d'interface,
la source
Cela a fonctionné pour moi
la source
Aller à
Interface Builder
:view controller
qui contient votretext view
Adjusts Scroll View Insets
propriétéla source
Je me demande vraiment si c'est une vraie fonctionnalité ... Cet insert automatique de 64 points n'est ajouté que lorsque le
UIScrollView
ouUITextView
comme la plus grande profondeur de toutes les sous-vues de la vue du contrôleur de vue. Par exemple, si vous ajoutez une vue derrière (ici je parle de z-buffer, pas d'imbrication de vue) la vue de défilement, cet encart de 64 points n'est pas automatiquement ajouté.Par exemple, celui-ci ajoute l'encart:
Dans ce cas, l'encart n'est pas ajouté:
Cela me semble vraiment étrange… Pourquoi le système d'exploitation examinerait-il la profondeur de la vue pour décider s'il devrait étendre la vue?
la source
Sur swift (Xcode 6)
la source
viewDidLoad
le contrôleur de vue avec la vue texte.automaticallyAdjustsScrollViewInsets
est obsolète. Depuis iOS11, utilisezcontentInsetAdjustmentBehavior
Vous pouvez supprimer l'espace vide au-dessus de votre
UITextView
en ajoutant:la source
J'ai résolu ce problème en définissant le décalage du contenu sur une valeur négative. Voici le code Swift.
la source
[self.textView setContentOffset:CGPointMake(0.f, -self.topLayoutGuide.length) animated:NO];
Ce que vous devez comprendre, c'est que cela concerne la barre de navigation:
la source
J'ai essayé l'astuce suivante, cela a fonctionné.
la source
Solution pour Swift 4:
la source
C'est une solution non professionnelle, j'en suis sûr ... Mais le simple fait de mettre une étiquette vierge derrière la vue de texte résout le problème.
la source
Cela a juste fonctionné pour moi (disponible à partir d'iOS 7)
la source