Czy istnieje sposób, aby UILabel mógł narysować wokół siebie obramowanie? Jest to przydatne dla mnie do debugowania umieszczenia tekstu i zobaczenia miejsca docelowego oraz jak duża jest etykieta.Jak narysować obramowanie wokół UILabel?
Odpowiedz
Można ustawić granicę etykiety poprzez jego podstawowych właściwości CALayer:
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor;
myLabel.layer.borderWidth = 3.0;
Można użyć tego repo: GSBorderLabel
Jest to dość prosta:
GSBorderLabel *myLabel = [[GSBorderLabel alloc] initWithTextColor:aColor
andBorderColor:anotherColor
andBorderWidth:2];
Dotyczy to obramowania wokół rzeczywistych znaków w tekście , chodzi o granice wokół prostokąta, w którym jest zawarty tekst. – jjxtra
to naprawdę zależy od tego, ile W twoim widoku użyj interakcji, czasem dodaj tylko UIVIEW, którego rozmiar jest nieco większy, aby stworzyć granicę. metoda jest szybsza niż produkować rzutem
wersję SWIFT:
myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.greenColor().CGColor
Dla Swift 3:
myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.green.cgColor
będzie to "myLabel.layer.borderColor = UIColor.blackColor(). CGColor!' – Shruti
dziękuję, zredagowałem odpowiedź – Esqarrouth
Oto kilka rzeczy, które możesz zrobić z UILabel
i jej granic.
Oto kod dla tych etykiet:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!
@IBOutlet weak var label6: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// label 1
label1.layer.borderWidth = 1.0
// label 2
label2.layer.borderWidth = 5.0
label2.layer.borderColor = UIColor.blue.cgColor
// label 3
label3.layer.borderWidth = 2.0
label3.layer.cornerRadius = 8
// label 4
label4.backgroundColor = UIColor.cyan
// label 5
label5.backgroundColor = UIColor.red
label5.layer.cornerRadius = 8
label5.layer.masksToBounds = true
// label 6
label6.layer.borderWidth = 2.0
label6.layer.cornerRadius = 8
label6.backgroundColor = UIColor.yellow
label6.layer.masksToBounds = true
}
}
Należy zauważyć, że w Swift nie ma potrzeby importowania QuartzCore
.
Zobacz także
Korzystanie ciąg NSAttributedString dla etykiet attributedText jest prawdopodobnie b est bet. Check out this example.
Swift 3/4 z @IBDesignable
Chociaż prawie wszystkie powyższe rozwiązania działają dobrze, ale chciałbym zaproponować klasę @IBDesignable
niestandardową dla tego produktu.
@IBDesignable
class CustomLabel: UILabel {
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
@IBInspectable var borderColor: UIColor = UIColor.white {
didSet {
layer.borderColor = borderColor.cgColor
}
}
@IBInspectable var borderWidth: CGFloat = 2.0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat = 0.0 {
didSet {
layer.cornerRadius = cornerRadius
}
}
}
- 1. Jak narysować obramowanie wokół przycisku NSTextextSquareBezelStyle
- 2. Jak dodać obramowanie wokół TableLayout?
- 3. Białe obramowanie wokół GroupBox
- 4. Umieść obramowanie wokół punktów
- 5. Obramowanie wokół znacznika li
- 6. Obramowanie/ramka wokół ramki Emacs
- 7. Obramowanie prostokąta wokół tekstu SVG
- 8. Jak usunąć obramowanie wokół obrazu w css?
- 9. Jak usunąć obramowanie wokół skoncentrowanego contenteditable?
- 10. Spinner - jak ustawić obramowanie wokół listy rozwijanej?
- 11. Jak narysować wielokąt wokół polilinii w JavaScript?
- 12. Obramowanie wokół wprowadzania tekstu w formularzu HTML
- 13. W jaki sposób Qt narysuje obramowanie wokół prostokąta?
- 14. Dodaj obramowanie wokół wszystkich dzieci TreeViewItem
- 15. Obramowanie wokół elementu tr nie jest wyświetlane?
- 16. Malowanie zaokrąglone obramowanie wokół obrazu za pomocą Raphaela
- 17. Obramowanie wokół każdej komórki w zakresie
- 18. Utwórz blask wokół UIView
- 19. Jak mogę usunąć obramowanie wokół obrazu bez źródła?
- 20. Wyskakujące okno WPF: jak umieścić obramowanie wokół wyskakującego okienka?
- 21. Jak utworzyć obramowanie wokół sekcji tbody/thead tabeli?
- 22. Jak narysować obramowanie wokół siatki w R w ten sam sposób, w jaki obrysowuje się pole na plote na pudełku
- 23. CSS/Javascript: Jak narysować minimalną obwódkę wokół elementu śródliniowego?
- 24. Jak narysować prostokąt wokół regionu zainteresowania w python
- 25. Usuń obramowanie i margines wokół iOS Charts w Swift
- 26. Usuń Opera Mobile niebieskie obramowanie wokół <a> linki
- 27. Gruba czarna krawędź/obramowanie wokół aplikacji React Native na Androida
- 28. Windows 8 C#/XAML - Utwórz obramowanie wokół tekstu bloku tekstowego
- 29. narysować okrąg o promieniu 1000m wokół lokalizacji użytkowników w MKMapView
- 30. Jak zdobyć obramowanie na UIBezierPath
Kompilator skarży się, że nie ma definicji borderColor i borderWidth w obrębie CALayer. – Boon
są dostępne tylko począwszy od SDK 3.0 :(Jeśli chcesz tylko szybkie rozwiązanie do debugowania możesz ustawić półprzezroczyste kolorowe tło dla swojej etykiety – Vladimir
Jeśli kompilator narzeka, to prawdopodobnie zapomniałeś '#import ' –