如何扩展 - 在Swift中折叠UITextView?

时间:2016-11-29 21:34:47

标签: ios swift uitextfield

我想知道是否有可能在文本视图中只显示3行文本,当您单击“阅读更多”按钮时,它将扩展为包含3行以上文本的整个文本。如何在Swift中实现这一点并且没有任何pod或插件?

感谢。

1 个答案:

答案 0 :(得分:4)

如果您想在不使用其他第三方库的情况下执行此操作,最简单的方法是调整UITextView的框架。在我的示例代码中,我的故事板中有一个textView和一个Button。按下按钮时调用onReadMore。我只是在折叠时使用40作为大小,在扩展时使用200作为大小。

class ViewController: UIViewController
{
  @IBOutlet weak var textView: UITextView!

  override func viewDidLoad() 
  {
    super.viewDidLoad()

    let frame = textView.frame
    let newRect = CGRectMake(frame.origin.x, frame.origin.y, 200, 40)
    textView.frame = newRect
  }

  @IBAction func onReadMore(sender: AnyObject)
  {
    let frame = textView.frame

    if frame.height < 180
    {
      textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 180)
    }
    else
    {
      textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 40)
    }
  }
}