framework - ios reference
Confinado UITextView (12)
A partir de iOS 8 y Xcode 6, ahora encuentro que la mejor solución es subclasificar UITextView y marcar la subclase como IB_DESIGNABLE, que le permitirá ver el borde en el guión gráfico.
Encabezamiento:
#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, simplemente arrastre su UITextView en el guión gráfico y establezca su clase en BorderTextView
Quiero tener un borde gris fino alrededor de una UITextView
. Revisé la documentación de Apple pero no pude encontrar ninguna propiedad allí. Por favor ayuda.
Agrego UIImageView
como una subvista de UITextView
. Esto coincide con el borde nativo en un UITextField
, incluido el degradado de arriba a abajo:
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:
Agregue lo siguiente para las esquinas redondeadas:
self.yourUITextview.layer.cornerRadius = 8;
En Swift 3, puede usar las siguientes dos líneas:
myText.layer.borderColor = UIColor.lightGray.cgColor
myText.layer.borderWidth = 1.0
Este es el código que utilicé para agregar 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:
Pan comido.
Funciona muy bien, pero el color debe ser un CGColor
, no UIColor
:
view.layer.borderWidth = 5.0f;
view.layer.borderColor = [[UIColor grayColor] CGColor];
Lo que lo hizo funcionar (además de seguir las respuestas aquí) es agregar el atributo borderStyle
:
#import <QuartzCore/QuartzCore.h>
..
phoneTextField.layer.borderWidth = 1.0f;
phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor];
phoneTextField.borderStyle = UITextBorderStyleNone;
Solo una pequeña adición. Si hace que el borde sea un poco más ancho, interferirá con el lado izquierdo y derecho del texto. Para evitar eso, agregué la siguiente línea:
self.someTextView.textContainerInset = UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0);
esto es lo más cerca que pude de un UITextField original
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
}
para Swift Programming, usa esto
tv_comment.layer.borderWidth = 2
tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor
UIButton
este problema en el guión gráfico al colocar un UIButton
completamente deshabilitado detrás de UITextView
y crear el color de fondo de UITextView
clearColor. Esto funciona sin requerir códigos o paquetes adicionales.
#import <QuartzCore/QuartzCore.h>
....
// typically inside of the -(void) viewDidLoad method
self.yourUITextView.layer.borderWidth = 5.0f;
self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor];