基于内容调整文本框

问题描述 投票:7回答:2

如何能同时写在斯威夫特在iOS应用程序中使用的自动布局的文本框根据内容调整大小?

文本字段将调整为必要时的观点负载以及当用户键入以适应其内容。

理想情况下,文本字段将停止在某一点调整,比如说,6号线,并成为滚动。

ios swift resize textfield
2个回答
8
投票

你必须使用一个UITextView而不是UITextField的。

然后,你可以使用sizeThatFits方法。

但首先你要知道一条线有多高。你可以通过使用lineHeight信息:

var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown

在此之后,只需调用sizeThatFits方法您viewDidLoad方法内并设置maxHeight(line * 6)作为TextView的高度:

yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight))

3
投票

斯威夫特3

var textView : UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    textView = UITextView()
    textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: textView.frame.size.height))
}
© www.soinside.com 2019 - 2024. All rights reserved.