在使用Swift编写的iOS应用程序中使用自动布局时,如何根据内容调整textField的大小?根据内容调整textField的大小
当视图加载时以及用户输入时,文本字段将根据需要调整其大小以适应其内容。
理想情况下,文本字段将停止在特定点(例如6行)调整大小,并且变为可滚动。
在使用Swift编写的iOS应用程序中使用自动布局时,如何根据内容调整textField的大小?根据内容调整textField的大小
当视图加载时以及用户输入时,文本字段将根据需要调整其大小以适应其内容。
理想情况下,文本字段将停止在特定点(例如6行)调整大小,并且变为可滚动。
你必须使用一个UITextView
,而不是UITextField
然后,您可以使用sizeThatFits
方法。
但首先你必须知道一条线会有多高。您可以通过使用lineHeight
获得这些信息:
var amountOfLinesToBeShown:CGFloat = 6
var maxHeight:CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
之后,只需调用siteThatFits
方法您viewDidLoad
方法内并设置maxHeight(line * 6
)为您的TextView的高度:
yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight))
斯威夫特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次'yourTextview.sizeThatFits(...)'? – milo526 2015-04-11 17:04:08
你说得对。我改变了 – Christian 2015-04-11 18:22:09
有什么办法可以增加UITextField的行数? @Christian – 2015-05-06 10:04:44