根据内容调整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)) }