Czy istnieje sposób, aby UILabel narysował wokół siebie granicę? Jest to przydatne dla mnie do debugowania umiejscowienia tekstu i sprawdzenia miejsca docelowego oraz faktycznej wielkości etykiety.
140
Możesz ustawić obramowanie etykiety za pomocą jej podstawowej właściwości CALayer:
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor
myLabel.layer.borderWidth = 3.0
Swift 5:
myLabel.layer.borderColor = UIColor.darkGray.cgColor
myLabel.layer.borderWidth = 3.0
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = UIColor.greenColor().CGColor
Oto kilka rzeczy, które możesz zrobić z
UILabel
jego granicami.Oto kod tych etykiet:
Zauważ, że w Swift nie ma potrzeby importowania
QuartzCore
.Zobacz też
CALayer
masksToBounds
CALayer
źródło
Wersja Swift:
Dla Swift 3:
źródło
myLabel.layer.borderColor = UIColor.blackColor().CGColor!
Swift 3/4 z @IBDesignable
Prawie wszystkie powyższe rozwiązania działają dobrze, ale sugerowałbym do tego
@IBDesignable
niestandardową klasę.źródło
Możesz użyć tego repozytorium: GSBorderLabel
To całkiem proste:
źródło
Właściwości UILabel borderColor, borderWidth, cornerRadius w języku Swift 4
źródło
Rozwiązanie dla Swift 4:
yourLabel.layer.borderColor = UIColor.green.cgColor
źródło
to naprawdę zależy od tego, ile osób używa granic w Twoim widoku, czasami po prostu dodaj UIVIEW, którego rozmiar jest nieco większy, aby utworzyć obramowanie. metoda jest szybsza niż tworzenie widoku
źródło
Prawdopodobnie najlepszym rozwiązaniem jest użycie łańcucha NSAttributedString w etykietach attributeText. Sprawdź ten przykład.
źródło