首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UILabel文本穿透角

UILabel文本穿透角
EN

Stack Overflow用户
提问于 2018-11-22 10:09:24
回答 2查看 437关注 0票数 0

我想要创建一个UILabel,其中的文本是这样的(像角度,而不是水平)。谁能提个建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-22 12:06:54

您所需要做的就是将标签的宽度调整到内容大小。

代码语言:javascript
复制
testLabel.text = "Tk 1,750"
testLabel.frame.size.width = myLabel.intrinsicContentSize.width

然后按照@fzh的说法使用

代码语言:javascript
复制
testLabel.addSlantLine(slantLineColor: UIColor.lightGray,
                   slantLineWidth: 2,
                   startPoint: CGPoint(x: 0, y: testLabel.frame.height - 2),
                   endPoint: CGPoint(x: testLabel.frame.width, y: 2))

备注:文本更新后的剪裁

票数 0
EN

Stack Overflow用户

发布于 2018-11-22 10:56:55

您可以添加如下扩展:

代码语言:javascript
复制
extension UILabel {
    func addSlantLine(slantLineColor: UIColor, slantLineWidth:CGFloat, startPoint: CGPoint, endPoint: CGPoint) {
        let slantLinePath = UIBezierPath()
        slantLinePath.move(to: startPoint)
        slantLinePath.addLine(to: endPoint)

        let slantLineLayer = CAShapeLayer()
        slantLineLayer.path = slantLinePath.cgPath
        slantLineLayer.lineWidth = slantLineWidth
        slantLineLayer.strokeColor = slantLineColor.cgColor
        layer.addSublayer(slantLineLayer)
    }
}

用途:

代码语言:javascript
复制
testLabel.addSlantLine(slantLineColor: UIColor.lightGray,
                       slantLineWidth: 2,
                       startPoint: CGPoint(x: 0, y: testLabel.frame.height - 2),
                       endPoint: CGPoint(x: testLabel.frame.width, y: 2))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53428496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档