根据内容调整textField的大小

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

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

理想情况下,文本字段将停止resize,例如6行,并成为可滚动的。

您必须使用UITextView而不是UITextField

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

但首先你必须知道一条线会有多高。 你可以使用lineHeight获取这些信息:

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

之后,只需调用viewDidLoad方法中的siteThatFits方法,并将maxHeight( line * 6 )设置为textview-height:

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