UILabel 有办法在自己周围画一条边界吗?这对我调试文本位置和查看位置以及标签实际有多大很有用。
您可以通过标签的底层 CALayer 属性设置标签的边框:
#import <QuartzCore/QuartzCore.h> myLabel.layer.borderColor = [UIColor greenColor].CGColor myLabel.layer.borderWidth = 3.0
迅捷5:
myLabel.layer.borderColor = UIColor.darkGray.cgColor myLabel.layer.borderWidth = 3.0
您可以使用这个回购: GSBorderLabel
很简单:
GSBorderLabel *myLabel = [[GSBorderLabel alloc] initWithTextColor:aColor andBorderColor:anotherColor andBorderWidth:2];
它实际上取决于有多少边框使用在您的视图,有时,只需添加一个 UIVIEW 的大小有点大,以创建边框。该方法比生成视图更快
快速版:
myLabel.layer.borderWidth = 0.5 myLabel.layer.borderColor = UIColor.greenColor().CGColor
对于斯威夫特3:
myLabel.layer.borderWidth = 0.5 myLabel.layer.borderColor = UIColor.green.cgColor
下面是一些你可以用 UILabel和它的边界来做的事情。
UILabel
下面是这些标签的代码:
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 } }
注意,在 Swift 中不需要导入 QuartzCore。
QuartzCore
参见
CALayer
masksToBounds
使用 NSAttributedString 字符串作为标签 AttributedText 可能是最好的选择
Swift 3/4 with@IBDesignable
虽然几乎所有上述解决方案工作良好,但我会建议为此 @IBDesignable自定义类。
@IBDesignable
@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 } } }
在 Swift 4中,UILabel 属性 borderColor,borderWidth,corderRadius
@IBOutlet weak var anyLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() anyLabel.layer.borderColor = UIColor.black.cgColor anyLabel.layer.borderWidth = 2 anyLabel.layer.cornerRadius = 5 anyLabel.layer.masksToBounds = true }
Swift 4的解决方案:
Your Label.layer.borderColor = UIColor.green.cgColor