Выяснение размера текстового поля в CATextLayer

Я написал этот код, работает хорошо; но мне нужно выяснить размер текста в CATextLayer, чтобы закончить это? Идея, которую я использую в жесте касания, чтобы получить х / у, ввести текст и выяснить, какой CGSize необходим для его рисования в объекте / виде CATextLayer.

overload func ViewDidLoad()
    let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
    container.addGestureRecognizer(tap)
}

 func handleTap(gesture: UITapGestureRecognizer) {
    let location = gesture.location(in: gesture.view)
    startX = location.x
    startY = location.y
    drawText(onLayer: view.layer, fromPoint: CGPoint(x: startX, y: startY), toPoint: CGPoint(x:location.x, y:location.y))
}

func drawText(onLayer layer: CALayer, fromPoint start: CGPoint, toPoint end:CGPoint) {
    let myTextLayer = CATextLayer()
    myTextLayer.string = "Google"
    myTextLayer.backgroundColor = UIColor.black.cgColor
    myTextLayer.foregroundColor = UIColor.white.cgColor
    //myTextLayer.frame = view.bounds
    let myBounds = CGRect(origin: start, size: CGSize(width: 128, height: 32))
    myTextLayer.frame = myBounds
    layer.addSublayer(myTextLayer)
}

1 ответ

Да, Yahoo!

Это ответ!

myTextLayer.preferredFrameSize()
Другие вопросы по тегам