Спасибо за хорошее объяснение. Я думаю, что это плохой выбор от Apple!

я есть UILabel и UITextView, где я намерен, чтобы они отображали один и тот же текст, а внешний вид был одинаковым. У меня сейчас есть проблема с этим. Я устроил демонстрацию на Swift Playground:

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
    override func loadView() {
        let view = UIView()
        view.backgroundColor = .white

        let label = UILabel()
        label.frame = CGRect(x: 100, y: 100, width: 247, height: 39)
        label.numberOfLines = 0
        label.font = UIFont.systemFont(ofSize: 16)
        label.text = "I’m on my way back to London today"
        label.textColor = .black
        label.backgroundColor = .red
        label.lineBreakMode = .byWordWrapping
        view.addSubview(label)

        let textView = UITextView()
        textView.frame = CGRect(x: 100, y: 200, width: 247, height: 39)
        textView.font = label.font
        textView.text = label.text
        textView.textColor = label.textColor
        textView.backgroundColor = label.backgroundColor
        textView.textContainer.lineBreakMode = label.lineBreakMode
        textView.textContainerInset = UIEdgeInsets.zero
        textView.textContainer.lineFragmentPadding = 0
        view.addSubview(textView)

        self.view = view
    }
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()

Как вы можете видеть, они оба настроены одинаково, но разрыв строки происходит в другом месте в UITextView. Я установилlineBreakMode к тому же значению для обоих. Я также удалилtextContainerInsets а такжеlineFragmentPadding в UITextView, поэтому текст размещается с одинаковым заполнением в обоих представлениях.

Ответы на вопрос(1)

Ваш ответ на вопрос