Вы можете сделать эту вещь работает так:
1. Добавьте UITextView и UIButton в раскадровку.
2. Если вы используете Autolayout ограничений, сделать выход высоты UITextView.
3. В классе ViewController сделать выходы как:
@IBOutlet вар txtView: UITextView!
@IBOutlet var btn_Show: UIButton!
@IBOutlet var textView_HeightConstraint: NSLayoutConstraint!
4. Сделайте способ, который даст вам высоту UITextView в соответствии с текстом в нем.
func getRowHeightFromText(strText : String!) -> CGFloat
{
let textView : UITextView! = UITextView(frame: CGRect(x: self.txtView.frame.origin.x,
y: 0,
width: self.txtView.frame.size.width,
height: 0))
textView.text = strText
textView.font = UIFont(name: "Fira Sans", size: 16.0)
textView.sizeToFit()
var txt_frame : CGRect! = CGRect()
txt_frame = textView.frame
var size : CGSize! = CGSize()
size = txt_frame.size
size.height = 50 + txt_frame.size.height
return size.height
}
5. По щелчку Баттона:
@IBAction func showMore_Button_Clicked(_ sender: UIButton)
{
if sender.tag == 0
{
let height = self.getRowHeightFromText(strText: self.txtView.text)
self.textView_HeightConstraint.constant = height
self.view.layoutIfNeeded()
btn_Show.setTitle("ShowLess", for: .normal)
sender.tag = 1
}
else
{
self.textView_HeightConstraint.constant = 116
self.view.layoutIfNeeded()
btn_Show.setTitle("ShowMore", for: .normal)
sender.tag = 0
}
}
6. Если вы не используете AutoLayoutConstraints, просто изменить раму (высота) UITextView при щелчке UIButton. Нет необходимости в "textView_HeightConstraint
"
@IBAction func showMore_Button_Clicked(_ sender: UIButton)
{
if sender.tag == 0
{
let height = self.getRowHeightFromText(strText: self.txtView.text)
self.txtView.frame = CGRect(x: self.txtView.frame.origin.x, y: self.txtView.frame.origin.y, width: self.txtView.frame.size.width, height: height)
btn_Show.setTitle("ShowLess", for: .normal)
sender.tag = 1
}
else
{
self.txtView.frame = CGRect(x: self.txtView.frame.origin.x, y: self.txtView.frame.origin.y, width: self.txtView.frame.size.width, height: 116)
btn_Show.setTitle("ShowMore", for: .normal)
sender.tag = 0
}
}
Его очень легко реализовать. Выполните следующие шаги: 1. Создайте UITextView со статической высотой и добавьте кнопку «Showmore» внизу текста. 2. При щелчке uibutton измените высоту uitextview. Измените высоту в соответствии с текстом в ней, а затем обновите рамку кнопки. Измените заголовок, но до «Бессмысленный». – SNarula