我正在尝试创建一个左侧和右侧有2条水平线的UILabel,如下所示:
有没有人知道在Swift中这样做的最佳方法?中心的内容文本将发生变化,因此我想确保它能够适应。我真的很想创建一种可重复使用的UIView类,但我不确定从哪里开始?
谢谢!
答案 0 :(得分:3)
您可以在标签的两侧拍摄两个UIview
高度1 or 2
像素。所以它看起来像线!
你应该将背景颜色设置为该视图的黑色!
希望这会有所帮助:)
答案 1 :(得分:0)
使用一个黑色背景和高度为1px的UIView,将标签背景设置为白色,将其文本对齐到中心,并将UILabel对齐到UIView的中心(因为标签白色背景将覆盖UIView,所以不需要2个视图)。 / p>
答案 2 :(得分:0)
选择一个photos/{photos}/comments/{comments}
高度为2.根据UIView
设置leading & Trailing
。
现在将一个Super View
背景色设为白色,然后将UILabel
放到线条视图中。
使两个Vertically Center
相同。
你的工作已经完成。
如需更多帮助,请参阅下图。
答案 3 :(得分:0)
没必要2 UIView's。
取 1 UIView 并提供背景黑色颜色。添加必要的约束条件: height = 2 。
在中心放置1个标签并提供所需的约束
答案 4 :(得分:0)
您可以在UILabel
上使用扩展程序public extension UILabel {
func drawLineOnBothSides(labelWidth: CGFloat, color: UIColor) {
let fontAttributes = [NSFontAttributeName: self.font]
let size = self.text?.size(attributes: fontAttributes)
let widthOfString = size!.width
let width = CGFloat(1)
let leftLine = UIView(frame: CGRect(x: 0, y: self.frame.height/2 - width/2, width: labelWidth/2 - widthOfString/2 - 10, height: width))
leftLine.backgroundColor = color
self.addSubview(leftLine)
let rightLine = UIView(frame: CGRect(x: labelWidth/2 + widthOfString/2 + 10, y: self.frame.height/2 - width/2, width: labelWidth/2 - widthOfString/2 - 10, height: width))
rightLine.backgroundColor = color
self.addSubview(rightLine)
}
}
这将在标签的两侧添加宽度为1.0的水平线。如果您没有为标签添加文字,它将在中心显示两条水平线,两条线之间有一些空格。
答案 5 :(得分:0)