Có cách nào để UILabel vẽ đường viền xung quanh chính nó không? Điều này rất hữu ích cho tôi để gỡ lỗi vị trí văn bản và để xem vị trí và mức độ lớn của nhãn thực sự.Làm thế nào để vẽ đường viền quanh nhãn UILabel?
Trả lời
Bạn có thể thiết lập biên giới nhãn của qua bất động sản CALayer cơ bản của nó:
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor;
myLabel.layer.borderWidth = 3.0;
Bạn có thể sử dụng repo này: GSBorderLabel
Nó khá đơn giản:
GSBorderLabel *myLabel = [[GSBorderLabel alloc] initWithTextColor:aColor
andBorderColor:anotherColor
andBorderWidth:2];
Điều này đề cập đến biên giới xung quanh các ký tự thực trong văn bản , câu hỏi đang nói về các đường viền xung quanh hình chữ nhật mà văn bản được chứa trong. – jjxtra
nó thực sự phụ thuộc vào có bao nhiêu sử dụng boarder trong quan điểm của bạn, đôi khi, chỉ cần thêm một UIVIEW có kích thước lớn hơn một chút để tạo đường viền. phương pháp này là nhanh hơn so với sản xuất một cái nhìn
Swift phiên bản:
myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.greenColor().CGColor
Đối Swift 3:
myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.green.cgColor
nó sẽ là 'myLabel.layer.borderColor = UIColor.blackColor(). CGColor!' – Shruti
cảm ơn, đã chỉnh sửa câu trả lời – Esqarrouth
Dưới đây là một số điều bạn có thể làm với UILabel
và biên giới của nó.
Đây là mã cho những nhãn:
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
}
}
Lưu ý rằng trong Swift không có nhu cầu nhập khẩu QuartzCore
.
cũng
Xem Sử dụng một chuỗi NSAttributedString cho các nhãn của bạn attributedText có lẽ là b của bạn đặt cược. Check out this example.
Swift 3/4 với @IBDesignable
Trong khi hầu như tất cả các giải pháp nêu trên hoạt động tốt nhưng tôi sẽ đề nghị một lớp @IBDesignable
tùy chỉnh cho việc này.
@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. Làm thế nào để thêm đệm vào một nhãn UILabel?
- 2. Vẽ đường viền quanh giấy của bạn trong Raphael JS
- 3. Làm thế nào để vẽ một đường viền xung quanh một thanh ngang trong R giống như cách một đường viền được vẽ cho một ô vuông
- 4. Vẽ đường viền tròn xung quanh hình ảnh bằng Raphael
- 5. Làm cách nào để đặt đường viền quanh thẻ tr?
- 6. Làm thế nào để vẽ một UILabel in -drawRect :?
- 7. Làm thế nào để tạo viền trắng xung quanh bitmap?
- 8. Đặt đường viền xung quanh các điểm
- 9. Đường viền quanh các ô mẫu
- 10. Cách lấy spplot (lưới) để không vẽ đường viền xung quanh đa giác
- 11. Vẽ đường viền xung quanh một tập hợp các đỉnh trong Graphviz
- 12. javafx 2.0 thêm đường viền vào Nhãn
- 13. Làm thế nào để loại bỏ đường viền xung quanh đồ thị cốt lõi
- 14. Đường viền màu trắng xung quanh GroupBox
- 15. Làm cách nào để vẽ đường viền xung quanh cả phần tiêu đề cột, chân trang và phần chi tiết?
- 16. Đặt đường viền xung quanh UIImageView
- 17. CSS/Javascript: Làm cách nào để vẽ đường viền tối thiểu xung quanh yếu tố nội tuyến?
- 18. Xóa đường viền quanh ô Matlab
- 19. Thuật toán để vẽ đường viền hoặc nét vẽ xung quanh bất kỳ hình ảnh trong suốt alpha
- 20. Đặt đường viền xung quanh StackPanel.
- 21. Làm cách nào để xóa đường viền màu xám của UILabel ở bên phải?
- 22. Làm thế nào để vẽ đường viền bảng chéo trong mủ cao su, như trong Excel?
- 23. Làm thế nào để vẽ hình tam giác với nền trong suốt với đường viền?
- 24. Qt QTableView vẽ đường viền xung quanh các ô đang hoạt động
- 25. Làm cách nào để tạo đường viền xung quanh các phần tbody/thead của bảng?
- 26. Xóa đường viền mỏng xung quanh đường đi bộ
- 27. OpenGL vẽ đường viền hình chữ nhật
- 28. vẽ một đường viền xung quanh các ô con trong matplotlib
- 29. Matplotlib Đường viền nhãn Vị trí
- 30. Qt vẽ đường bao quanh hình chữ nhật như thế nào?
Trình biên dịch khiếu nại rằng không có định nghĩa về borderColor và borderWidth trong CALayer. – Boon
chúng chỉ có sẵn bắt đầu từ SDK 3.0: (Nếu bạn muốn chỉ là một giải pháp nhanh cho mục đích gỡ lỗi, bạn có thể đặt nền màu bán trong suốt cho nhãn của mình) – Vladimir
Nếu trình biên dịch phàn nàn thì có thể bạn đã quên '#import ' –