在使用 Swift 编写的 iOS 应用中,如何在使用自动布局时根据内容调整文本框的大小?
当视图加载以及用户输入时,文本框会根据需要调整大小以适应其内容。
理想情况下,文本框将在一定点停止调整大小,比如 6 行,并变得可滚动。
您需要使用UITextView
代替UITextField
。
然后,您可以使用sizeThatFits
方法。
但首先您需要知道一行的高度。您可以使用lineHeight
来获取该信息:
var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
之后,只需在viewDidLoad
方法中调用sizeThatFits
方法,并将最大高度(line * 6
)设置为您的文本视图高度:
yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight))
Swift 3
var textView : UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView = UITextView()
textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: textView.frame.size.height))
}
yourTextview.sizeThatFits(…)
? - milo526UITextView
。 - Christian