根据内容调整textField的大小

时间:2015-02-08 02:26:58

标签: ios swift resize textfield

在使用Swift编写的iOS应用程序中使用自动布局时,如何根据内容调整textField的大小?

在视图加载时以及在用户输入时,文本字段将根据需要调整大小以适合其内容。

理想情况下,文本字段会停止在特定点调整大小,例如6行,并且可以滚动。

3 个答案:

答案 0 :(得分:8)

您必须使用UITextView代替UITextField

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

但首先你必须知道一条线的高度。您可以使用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))

答案 1 :(得分:2)

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))
}

答案 2 :(得分:0)

快捷键5

更简单的方法:

textField.text = "hola"
textField.frame.size.width = textField.intrinsicContentSize.width