【发布时间】:2017-03-30 02:19:27
【问题描述】:
我编写了以下代码以使 UITextView 的高度适合其文本。
当我点击键盘上的输入键以添加新行时,大小会发生变化,但相对于第一行文本的上边距每隔一次会有所不同。
设置
- xCode 7.3
- 部署目标:iOS 9
import UIKit
class ViewController: UIViewController, UITextViewDelegate {
lazy var textView: UITextView = {
let tv = UITextView(frame: CGRectMake(20, 200, (self.view.frame.width - 40), 0) )
tv.backgroundColor = UIColor.lightGrayColor()
return tv
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview( textView )
textView.delegate = self
let height = self.height(textView)
let frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.width, height)
textView.frame = frame
}
func textViewDidChange(textView: UITextView) {
let frame = CGRect(x: textView.frame.origin.x, y: textView.frame.origin.y, width: textView.frame.width, height: height(textView) )
textView.frame = frame
}
func height(textView: UITextView) -> CGFloat {
let size = CGSizeMake(textView.frame.size.width, CGFloat.max)
let height = textView.sizeThatFits(size).height
return height
}
}
我尝试了其他几种方法来适应 UITextView 的高度,但他们只是采取了同样的做法。
【问题讨论】:
标签: ios swift height uitextview