我有一个带有一些文本的按钮,我需要为此添加边框0.2像素,我使用了@IBDesignable,但它适用于按钮而非文本。
我的代码:
@IBInspectable var borderWidth: CGFloat = 1.0{
didSet{
layer.borderWidth = borderWidth
}
}
@IBInspectable var borderTextColor:UIColor?{
didSet{
layer.borderColor = borderTextColor?.cgColor
}
}
答案 0 :(得分:0)
您只需为按钮提供ID并使用像这样的普通CSS-
#myButton{text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;}
这只会在文本上产生阴影,如轮廓。根据需要管理颜色。
答案 1 :(得分:0)
您正在为UIButton
而非UILabel
添加边框。将UILabel
用于文本而不是UIButton
文本,然后像这样将边框分配给UILabel
yourLabel.layer.borderColor = UIColor.black.cgColor
yourLabel.layer.borderWidth = 2
yourLabel.layer.cornerRadius = 5
答案 2 :(得分:0)
如果要在文本本身上添加边框,则可以使用属性字符串在文本中添加笔触。您可以对UIKit
中大多数与文本相关的UI元素执行此操作,例如UILabel
或UIButton
// Create the stroke attributes
let attributes: [NSAttributedString.Key: Any] = [
NSAttributedString.Key.strokeColor: UIColor.black,
NSAttributedString.Key.foregroundColor: UIColor.white,
NSAttributedString.Key.strokeWidth: -4.0
];
// Create the text with a stroke as an attributed string
let textWithStroke = NSAttributedString(
string: "Button Text",
attributes: attributes
);
// Set the attributed string to the button
button.setAttributedTitle(textWithStroke, for: .normal);
为.strokeWidth
使用负值,以便笔划勾勒出文本的外部轮廓,而不是内部轮廓
如果要编辑字体,只需将NSAttributedString.Key.font
值的UIFont
键添加到attributes
数组中