私はUILabelとUITextViewを持っていますが、私の意図は同じテキストを表示することと外観が同じであることです。私は今、それについていくつかの問題を抱えています。UILabelとUITextViewの改行が一致しません
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
を両方とも同じ値に設定しました。また、UITextViewでtextContainerInsets
とlineFragmentPadding
を削除したので、テキストは両方のビュー内で同じパディングで配置されます。
確かに非常に扱いにくい。これはデバイス上でどのように動作しますか? –
@意味の事柄はまったく同じ – Andrew