J'utilise une vue de texte comme compositeur de commentaires.
Dans l'inspecteur de propriétés, je ne trouve rien de tel qu'une propriété de style de bordure pour pouvoir utiliser un rect arrondi, quelque chose comme UITextField
.
Alors, la question est: comment puis-je coiffer un UITextView
comme un UITextField
avec un rect arrondi?
ios
uitextview
harshalb
la source
la source
UITextField
et éteindre simplementuserInteractionEnabled
?Réponses:
Il n'y a pas de style implicite à choisir, cela implique d'écrire un peu de code en utilisant le
QuartzCore
framework:Cela ne fonctionne que sur OS 3.0 et supérieur, mais je suppose que maintenant c'est la plate-forme de facto de toute façon.
la source
UITextField
avec laborderStyle
propriété définie surUITextBorderStyleRoundedRect
- voir mon message ci-dessous.ce code a bien fonctionné pour moi:
la source
Version Swift 3
Après avoir configuré la vue de texte dans le générateur d'interface.
Version Swift 2.2
la source
Edit: vous devez importer
pour utiliser le rayon de coin.
Essayez ceci, cela fonctionnera à coup sûr
Comme Rob l'a compris, si vous voulez que la couleur de la bordure soit similaire,
UITextField
vous devez changer la largeur de la bordure en 2.0 et la couleur en gris en ajoutant la ligne suivantela source
Je voulais la vraie affaire, alors j'ajoute
UIImageView
comme sous-vue duUITextView
. Cela correspond à la bordure native sur aUITextField
, y compris le dégradé de haut en bas:Voici les images que j'utilise:
la source
Une solution consiste à ajouter un UITextField sous UITextView , à rendre l'
UITextView
arrière - plan transparent et à désactiver toute interaction utilisateur sur leUITextField
. Ensuite, dans le code, changez leUITextField
cadre avec quelque chose comme çaVous aurez exactement le même aspect qu'un champ de texte.
Et comme suggéré par Jon , vous devriez mettre ce morceau de code à l'intérieur
[UIViewController viewDidLayoutSubviews]
sur iOS 5.0+.la source
viewDidLayoutSubviews:
(iOS 5.0+).Pour le meilleur effet, vous devez utiliser une image d'arrière-plan personnalisée (extensible). C'est aussi ainsi que la
UITextField
bordure arrondie du 's est dessinée.la source
Une façon que j'ai trouvée pour le faire sans programmation est de rendre le fond du champ de texte transparent, puis de placer un bouton Round Rect derrière. Assurez-vous de modifier les paramètres du bouton pour le désactiver et décochez la
Disable adjusts image
case.la source
Vous voudrez peut-être consulter ma bibliothèque appelée DCKit .
Vous pourrez créer une vue de texte dans un coin arrondi (ainsi qu'un champ de texte / bouton / simple
UIView
) à partir deInterface Builder
directement:Il possède également de nombreuses autres fonctionnalités utiles, telles que des champs de texte avec validation, des contrôles avec des bordures, des bordures en pointillés, des vues de cercle et de cheveux, etc.
la source
Je sais qu'il y a déjà beaucoup de réponses à celle-ci, mais je n'ai vraiment trouvé aucune d'elles suffisante (du moins dans Swift). Je voulais une solution qui fournisse la même bordure exacte qu'un UITextField (pas une approximation qui ressemble en quelque sorte à ce qu'elle ressemble maintenant, mais une qui lui ressemble exactement et qui lui ressemblera toujours). J'avais besoin d'utiliser un UITextField pour sauvegarder l'UITextView pour l'arrière-plan, mais je ne voulais pas avoir à le créer séparément à chaque fois.
La solution ci-dessous est un UITextView qui fournit son propre UITextField pour la bordure. Ceci est une version réduite de ma solution complète (qui ajoute la prise en charge des "espaces réservés" à UITextView de la même manière) et a été publiée ici: https://stackoverflow.com/a/36561236/1227119
la source
J'ai essayé le code Quartzcore et j'ai trouvé qu'il causait un décalage sur mon ancien 3G (que j'utilise pour les tests). Ce n'est pas un gros problème, mais si vous voulez être aussi inclusif que possible pour différents ios et matériels, je recommande la réponse d'Andrew_L ci-dessus - ou créez vos propres images et postulez en conséquence.
la source
Il existe une superbe image d'arrière-plan identique à celle
UITextView
utilisée pour envoyer des messages texte dans l'application Messages de l'iPhone. Vous aurez besoin d'Adobe Illustrator pour l'obtenir et le modifier. éléments vectoriels iphone uila source
la source
Vous pouvez créer un champ de texte qui n'accepte aucun événement au-dessus d'une vue de texte comme ceci:
la source
Si vous souhaitez conserver le code de votre contrôleur propre, vous pouvez sous-classe UITextView comme ci-dessous et modifier le nom de la classe dans Interface Builder.
RoundTextView.h
RoundTextView.m
la source
Voici ma solution:
la source
Je ne pense pas que ce soit possible. mais vous pouvez faire
UITableView
(groupé) avec 1 section et 1 cellule vide et l'utiliser comme conteneur pour votreUITextView
.la source
C'est une vieille question, et j'ai également été recherché pour cette réponse aux questions. La réponse de luvieeres est correcte à 100% et plus tard, Rob a ajouté du code. C'est excellent, mais j'ai trouvé un tiers dans une autre réponse aux questions qui me semble très utile. Je n'étais pas seulement cherché aspect similaire de
UITextField
plusUITextView
, je cherchais aussi multiligne. ChatInputSample satisfait les deux. C'est pourquoi je pense que ce tiers pourrait être utile aux autres. Merci également à Timur, il a mentionné cette source ouverte ici .la source
Dans iOS7, ce qui suit correspond parfaitement à la frontière UITextField (du moins à mes yeux):
Il n'est pas nécessaire d'importer quoi que ce soit de spécial.
Merci à @uvieere et @hanumanDev dont les réponses me mènent presque là :)
la source
Que diriez-vous simplement:
la source
UITextField
avecuserInteractionEnabled
jeu pourNO
.