[ios] Bordered UITextView



Answers

Fügen Sie für abgerundete Ecken Folgendes hinzu:

self.yourUITextview.layer.cornerRadius = 8; 
Question

Ich möchte einen dünnen grauen Rand um ein UITextView . Ich habe die Apple-Dokumentation durchgesehen, konnte dort aber keine Eigenschaft finden. Bitte helfen Sie.




für Swift-Programmierung, verwenden Sie dies

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



Ich löste dieses Problem im Storyboard, indem ich eine vollständig deaktivierte UIButton hinter die UITextView und die Hintergrundfarbe von UITextView clearColor machte. Dies funktioniert ohne zusätzlichen Code oder zusätzliche Pakete.




Ab iOS 8 und Xcode 6 finde ich nun die beste Lösung, UITextView abzuleiten und die Unterklasse als IB_DESIGNABLE zu markieren, mit der man den Rahmen im Storyboard betrachten kann.

Header:

#import <UIKit/UIKit.h>

IB_DESIGNABLE

@interface BorderTextView : UITextView

@end

Implementierung:

#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

Ziehen Sie dann einfach Ihre UITextView im Storyboard und setzen Sie ihre Klasse auf BorderTextView




Nur eine kleine Zugabe. Wenn Sie den Rand etwas breiter machen, wird dies die linke und rechte Seite des Textes stören. Um das zu vermeiden, habe ich folgende Zeile hinzugefügt:

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



Funktioniert gut, aber die Farbe sollte ein CGColor , nicht UIColor :

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



Links