Текст UILabel нанесен сквозь угол - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу создать UILabel, в котором текст будет таким (например, угол, а не горизонталь).Кто-нибудь может подсказать, пожалуйста?

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Все, что вам нужно сделать, это просто обрезать ширину этикетки до размера содержимого.

testLabel.text = "Tk 1,750"
testLabel.frame.size.width = myLabel.intrinsicContentSize.width

, а затем используйте как сказано @ fzh

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 голосов
/ 22 ноября 2018

Вы можете добавить расширение следующим образом:

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)
    }
}

использовать:

testLabel.addSlantLine(slantLineColor: UIColor.lightGray,
                       slantLineWidth: 2,
                       startPoint: CGPoint(x: 0, y: testLabel.frame.height - 2),
                       endPoint: CGPoint(x: testLabel.frame.width, y: 2))
...