2010-03-31 25 views
10

Jak ustawić granicę etykiety, która jest generowana dynamicznie (nie z poziomu Konstruktora interfejsu)?ustaw krawędź etykiety w telefonie komórkowym

+3

możliwy duplikat http://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel – Vladimir

+0

Możliwy duplikat [ Jak narysować obramowanie wokół UILabel?] (Https://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel) – Suragch

Odpowiedz

29

można to zrobić przez

Label.layer.borderColor = [UIColor whiteColor].CGColor; 
Label.layer.borderWidth = 4.0; 

przed tym trzeba importować ramy QuartzCore/QuartzCore.h

0

Nie jestem pewien, czy domyślnie można z UILabel. Możesz rozważyć użycie opcji tylko do odczytu (field.editing = NO) UITextField i ustawienie jej borderStyle (można to zrobić programowo za pomocą UITextBorderStyle). Może to być jednak trochę "ciężkie". Inną opcją może być podkategoria UILabel, aby narysować granicę.

Alternatywnie, w zależności od potrzeb może być lepiej, użyj podkładu CALayer i narysuj obramowanie, używając właściwości borderColor i borderWidth.

1

Można także spróbować podklasy etykietę i zastępują drawRect: Metoda rysować lub obramowanie lub cokolwiek chcesz:

- (void)drawRect:(CGRect)rect 
{ 
    [super drawRect:rect]; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [[UIColor blackColor] setStroke]; 
    CGContextStrokeRect(context, self.bounds); 
} 
2

wersja Swift

enter image description here

Set etykieta granica

label.layer.borderWidth = 2.0 

ustawić kolor obramowania

label.layer.borderColor = UIColor.blueColor().CGColor 

Stosować zaokrąglone rogi

label.layer.cornerRadius = 8 

Producent kolor tła pozostać w zaokrąglonymi narożnikami

label.layer.masksToBounds = true 
Powiązane problemy