Estoy usando una vista de texto como un compositor de comentarios.
En el inspector de propiedades no puedo encontrar nada como una propiedad de estilo de borde para poder hacer uso de un rect redondeado, algo así como UITextField
.
Entonces, la pregunta es: ¿Cómo puedo diseñar un UITextView
like como UITextField
con un rect redondeado?
ios
uitextview
harshalb
fuente
fuente
UITextField
y simplemente apagaruserInteractionEnabled
?Respuestas:
No hay un estilo implícito que tenga que elegir, implica escribir un poco de código usando el
QuartzCore
marco:Solo funciona en OS 3.0 y superior, pero supongo que ahora es la plataforma de facto de todos modos.
fuente
UITextField
con laborderStyle
propiedad establecida enUITextBorderStyleRoundedRect
- vea mi publicación a continuación.este código funcionó bien para mí:
fuente
Versión Swift 3
Después de configurar la vista de texto en el generador de interfaces.
Versión Swift 2.2
fuente
Editar: tienes que importar
para usar el radio de la esquina.
Prueba esto, funcionará seguro
Como Rob descubrió, si desea que el color del borde sea similar,
UITextField
entonces debe cambiar el ancho del borde a 2.0 y el color a gris agregando la siguiente líneafuente
Quería el verdadero negocio, así que agrego
UIImageView
como una subvista de laUITextView
. Esto coincide con el borde nativo en unUITextField
, incluido el gradiente de arriba a abajo:Estas son las imágenes que uso:
fuente
Una solución es agregar un UITextField debajo del UITextView , hacer que el
UITextView
fondo sea transparente y deshabilitar cualquier interacción del usuario en elUITextField
. Luego, en el código, cambie elUITextField
marco con algo asíTendrá exactamente el mismo aspecto que un campo de texto.
Y según lo sugerido por Jon , debe poner este código dentro
[UIViewController viewDidLayoutSubviews]
de iOS 5.0+.fuente
viewDidLayoutSubviews:
(iOS 5.0+).Para obtener el mejor efecto, debe utilizar una imagen de fondo personalizada (extensible). Así también
UITextField
se dibuja el borde redondeado del 's.fuente
Una forma de hacerlo sin programar es hacer que el fondo del campo de texto sea transparente y luego colocar un botón de Rectificación redonda detrás de él. Asegúrese de cambiar la configuración del botón para deshabilitarlo y desmarque la
Disable adjusts image
casilla de verificación.fuente
Es posible que desee consultar mi biblioteca llamada DCKit .
Podrá crear una vista de texto de esquina redondeada (así como un campo de texto / botón / plano
UIView
)Interface Builder
directamente desde:También tiene muchas otras características útiles, como campos de texto con validación, controles con bordes, bordes discontinuos, vistas de círculo y rayita, etc.
fuente
Sé que ya hay muchas respuestas a esta, pero realmente no encontré ninguna de ellas suficiente (al menos en Swift). Quería una solución que proporcionara el mismo borde exacto que un UITextField (no una aproximada que se vea más o menos como se ve ahora, pero una que se ve exactamente igual y siempre se verá exactamente igual). Necesitaba usar un UITextField para respaldar el UITextView para el fondo, pero no quería tener que crearlo por separado cada vez.
La solución a continuación es un UITextView que proporciona su propio UITextField para el borde. Esta es una versión reducida de mi solución completa (que agrega soporte de "marcador de posición" al UITextView de manera similar) y se publicó aquí: https://stackoverflow.com/a/36561236/1227119
fuente
Intenté el código Quartzcore y descubrí que causaba un retraso en mi 3G anterior (lo uso para las pruebas). No es un gran problema, pero si desea ser lo más inclusivo posible para diferentes dispositivos iOS y hardware, le recomiendo la respuesta de Andrew_L anterior, o haga sus propias imágenes y aplique en consecuencia.
fuente
Hay una gran imagen de fondo que es idéntica a la
UITextView
utilizada para enviar mensajes de texto en la aplicación Mensajes de iPhone. Necesitará Adobe Illustrator para obtenerlo y modificarlo. elementos de vector de ui de iphonefuente
fuente
Puede crear un campo de texto que no acepte ningún evento encima de una vista de texto como este:
fuente
Si desea mantener limpio el código de su controlador, puede subclasificar UITextView como se muestra a continuación y cambiar el nombre de la clase en el Creador de interfaces.
RoundTextView.h
RoundTextView.m
fuente
Aquí está mi solución:
fuente
No creo que sea posible. pero puede hacerlo
UITableView
(agrupado) con 1 sección y 1 celda vacía y usarlo como contenedor para suUITextView
.fuente
Esta es una vieja pregunta, y también me buscaron por esta respuesta. La respuesta de luvieeres es 100% correcta y luego Rob agregó un código. Eso es excelente, pero encontré un tercero en otra respuesta a las preguntas que me parece muy útil. Yo no sólo se buscó aspecto similar de
UITextField
másUITextView
, también se buscó el apoyo de varias líneas. ChatInputSample satisfizo a ambos. Por eso creo que este tercero podría ser útil para otros. También gracias a Timur, mencionó este código abierto aquí .fuente
En iOS7, lo siguiente coincide perfectamente con el borde UITextField (al menos para mi ojo):
No hay necesidad de importar nada especial.
Gracias a @uvieere y @hanumanDev cuyas respuestas me llevan casi allí :)
fuente
¿Qué tal solo:
fuente
UITextField
conuserInteractionEnabled
set toNO
.