Pregunta

Quiero tener un borde gris delgada alrededor de un UITextView. He ido a través de la documentación de Apple, pero no pude encontrar ninguna propiedad allí. Por favor, ayuda.

¿Fue útil?

Solución

#import <QuartzCore/QuartzCore.h>

....

// typically inside of the -(void) viewDidLoad method
self.yourUITextView.layer.borderWidth = 5.0f;
self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor];

Otros consejos

Añadir el siguiente para las esquinas redondeadas:

self.yourUITextview.layer.cornerRadius = 8; 

Este es el código que usé, añadir un borde alrededor de mi control TextView llamado "tbComments":

self.tbComments.layer.borderColor = [[UIColor grayColor] CGColor];
self.tbComments.layer.borderWidth = 1.0;
self.tbComments.layer.cornerRadius = 8;

Y esto es lo que parece:

introducir descripción de la imagen aquí

Peasy fácil.

añadir UIImageView como una vista secundaria de la UITextView. Esto coincide con la frontera nativo en un UITextField, incluyendo el gradiente de arriba a abajo:

introducir descripción de la imagen aquí

textView.backgroundColor = [UIColor clearColor];
UIImageView *borderView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)];
borderView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
UIImage *textFieldImage = [[UIImage imageNamed:@"TextField.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 8, 15, 8)];
borderView.image = textFieldImage;
[textField addSubview: borderView];
[textField sendSubviewToBack: borderView];

Estas son las imágenes PNG que uso, y una representación jpg:

@ 1x

@ 2x

introducir descripción de la imagen aquí

funciona muy bien, pero el color debe ser un CGColor, no UIColor:

view.layer.borderWidth = 5.0f;
view.layer.borderColor = [[UIColor grayColor] CGColor];

Programación de Swift, utilice este

tv_comment.layer.borderWidth = 2
tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor

Esto es lo más cerca que pude de un UITextField originales

func updateBodyTextViewUI() {
    let borderColor = UIColor.init(red: 212/255, green: 212/255, blue: 212/255, alpha: 0.5)

    self.bodyTextView.layer.borderColor = borderColor.CGColor
    self.bodyTextView.layer.borderWidth = 0.8
    self.bodyTextView.layer.cornerRadius = 5
}

Creo que las respuestas anteriores son para las versiones anteriores de Swift. Busqué en Google un poco y los siguientes código de obras para Swift 4. Sólo compartiendo por el que se puede beneficiar.

self.textViewName.layer.borderColor = UIColor.lightGray.cgColor
self.textViewName.layer.borderWidth = 1.0;
self.textViewName.layer.cornerRadius = 8;

Codificación feliz!

A partir de iOS 8 y 6 Xcode, ahora encontrar la mejor solución es una subclase UITextView y marcar la subclase como un IB_DESIGNABLE, lo que permitirá ver en la frontera del guión gráfico.

encabezado:

#import <UIKit/UIKit.h>

IB_DESIGNABLE

@interface BorderTextView : UITextView

@end

Implementación:

#import "BorderTextView.h"

@implementation BorderTextView

- (void)drawRect:(CGRect)rect
{
    self.layer.borderWidth = 1.0;
    self.layer.borderColor = [UIColor blackColor].CGColor;
    self.layer.cornerRadius = 5.0f;
}

@end

A continuación, sólo tienes que arrastrar tu UITextView en storyboard y establece su clase con el BorderTextView

Lo que hizo que funcione (además de seguir las respuestas aquí) está añadiendo el atributo borderStyle:

#import <QuartzCore/QuartzCore.h>
..

phoneTextField.layer.borderWidth = 1.0f;
phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor];
phoneTextField.borderStyle = UITextBorderStyleNone;

Sólo una pequeña adición. Si realiza la frontera un poco más amplio, que va a interferir con el lado izquierdo y derecho del texto. Para evitar que, añadí la línea siguiente:

self.someTextView.textContainerInset = UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0);

En Swift 3, es posible utilizar las dos líneas siguientes:

myText.layer.borderColor = UIColor.lightGray.cgColor

myText.layer.borderWidth = 1.0

Me resuelto este problema de guión gráfico poniendo un UIButton totalmente desactivado detrás del UITextView y hacer que el color de fondo de la clearColor UITextView. Estos trabajos sin necesidad de código extra o paquetes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top