根据内容调整 textField 的大小
Resize textField Based On Content
在使用 Swift 编写的 iOS 应用程序中使用自动布局时,如何根据内容调整文本字段的大小?
文本字段将根据需要调整大小以在加载视图时以及用户键入时适应其内容。
理想情况下,文本字段会在某个点停止调整大小,比如 6 行,然后变为可滚动。
您必须使用 UITextView
而不是 UITextField
。
然后,您可以使用sizeThatFits
方法。
但首先你得知道一根线有多高。您可以使用 lineHeight
:
获取该信息
var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
之后,只需在 viewDidLoad
方法中调用 sizeThatFits
方法并将 maxHeight (line * 6
) 设置为文本视图高度:
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))
}
在使用 Swift 编写的 iOS 应用程序中使用自动布局时,如何根据内容调整文本字段的大小?
文本字段将根据需要调整大小以在加载视图时以及用户键入时适应其内容。
理想情况下,文本字段会在某个点停止调整大小,比如 6 行,然后变为可滚动。
您必须使用 UITextView
而不是 UITextField
。
然后,您可以使用sizeThatFits
方法。
但首先你得知道一根线有多高。您可以使用 lineHeight
:
var amountOfLinesToBeShown: CGFloat = 6
var maxHeight: CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown
之后,只需在 viewDidLoad
方法中调用 sizeThatFits
方法并将 maxHeight (line * 6
) 设置为文本视图高度:
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))
}