Как повернуть текст на 90 градусов в Swift: методы и примеры

Чтобы повернуть текст на 90 градусов в языке программирования Swift, вы можете использовать различные методы. Вот несколько подходов, которые вы можете использовать:

  1. Вращение CGAffineTransform:
    Вы можете использовать класс CGAffineTransformдля поворота UILabelили UITextViewна 90 градусов. Вот пример:
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
label.text = "Hello, World!"
label.transform = CGAffineTransform(rotationAngle: .pi / 2)
  1. Основной текст.
    Другой метод предполагает использование основного текста для рисования повернутого текста. Вот пример:
let context = UIGraphicsGetCurrentContext()
context?.saveGState()
context?.translateBy(x: 0, y: view.bounds.height)
context?.rotate(by: .pi / 2)
let attributes = [
    NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16),
    NSAttributedString.Key.foregroundColor: UIColor.black
]
let text = "Hello, World!"
let attributedText = NSAttributedString(string: text, attributes: attributes)
let textSize = attributedText.size()
let textRect = CGRect(x: 0, y: 0, width: view.bounds.height, height: textSize.width)
attributedText.draw(in: textRect)
context?.restoreGState()
  1. Пользовательское рисование.
    Вы можете создать подкласс UIViewи переопределить метод draw(_:)для выполнения собственного рисования с повернутым текстом:
class RotatedTextView: UIView {
    override func draw(_ rect: CGRect) {
        guard let context = UIGraphicsGetCurrentContext() else { return }

        context.saveGState()
        context.translateBy(x: 0, y: bounds.height)
        context.rotate(by: .pi / 2)

        let attributes = [
            NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16),
            NSAttributedString.Key.foregroundColor: UIColor.black
        ]
        let text = "Hello, World!"
        let attributedText = NSAttributedString(string: text, attributes: attributes)
        let textSize = attributedText.size()
        let textRect = CGRect(x: 0, y: 0, width: bounds.height, height: textSize.width)
        attributedText.draw(in: textRect)

        context.restoreGState()
    }
}
// Usage:
let rotatedTextView = RotatedTextView(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
view.addSubview(rotatedTextView)

Эти методы демонстрируют различные способы поворота текста в Swift на 90 градусов. Вы можете выбрать тот, который соответствует вашим конкретным требованиям, и интегрировать его в свой проект.