Swiftで記述されたiOSアプリケーションで自動レイアウトを使用しているときに、コンテンツに基づいてtextFieldのサイズを変更するにはどうすればよいですか?
テキストフィールドは、ビューの読み込み時およびユーザーの入力中に、コンテンツに合わせて必要に応じてサイズ変更されます。
理想的には、テキストフィールドは特定のポイント(たとえば6行)でサイズ変更を停止し、スクロール可能になります。
UITextView
の代わりにUITextField
を使用する必要があります。
次に、sizeThatFits
メソッドを使用できます。
ただし、最初に1本の線の高さを知る必要があります。 lineHeight
を使用して、その情報を取得できます。
var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
その後、sizeThatFits
メソッド内でviewDidLoad
メソッドを呼び出し、maxHeight(line * 6
)テキストビューの高さとして:
yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight))
Swift
var textView : UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView = UITextView()
textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: textView.frame.size.height))
}