0
UITextViewの設定に問題があります。これには1桁の数字が入ります。私は、ビューが小さく、テキストが中央と水平の両方にあることを望みます。UITextViewのサイズと配置の設定
ビューをインスタンス化:
let setNumberView: UITextView = {
let view = UITextView(frame: CGRect(x: 0, y: 0, width: heightForView(text: "8", font: UIFont.systemFont(ofSize: 12), width: 25), height: heightForView(text: "8", font: UIFont.systemFont(ofSize: 12), width: 25)))
view.text = "1"
view.backgroundColor = .white
view.translatesAutoresizingMaskIntoConstraints = false
print("FONT SIZE: \(view.font?.pointSize)")
return view
}()
セットアップ制約を:
/* setNumberView */
let setDiameter = heightForView(text: "8", font: UIFont.systemFont(ofSize: 12), width: 25)
addConstraintsWithFormat("H:|-4-[v0]", views: setNumberView)
addConstraint(NSLayoutConstraint(item: setNumberView, attribute: .centerY, relatedBy: .equal, toItem: self, attribute: .centerY, multiplier: 1, constant: 0))
//height
addConstraint(NSLayoutConstraint(item: setNumberView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: setDiameter))
//width
addConstraint(NSLayoutConstraint(item: setNumberView, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: setDiameter))
しかし、私はこれが残っています:私の目標は「1を持つことである
白いボックスの中には、水平方向と垂直方向の中心があります。ここで
は、私は高さ/幅を取得しています方法です:
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
なぜサイズにのTextViewをuilabelを使うのか? uitextviewのスクロールを無効にして、その固有のサイズを使用しないようにしてください。 – agibson007
これは私がいくつかのことに使う関数です。しかし、idk、私はmm初心者の提案を開いている – defoification
スクロールを有効にするをオフにし、textview自体がuilabelのようなサイズになります。それを計算する高さ関数を作成するか、自動レイアウトと自動寸法を使用することができます。 – agibson007