Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中展开-折叠UITextView?_Ios_Swift_Uitextfield - Fatal编程技术网

Ios 如何在Swift中展开-折叠UITextView?

Ios 如何在Swift中展开-折叠UITextView?,ios,swift,uitextfield,Ios,Swift,Uitextfield,我想知道是否有可能在文本视图中只显示3行文本,当您单击“阅读更多”按钮时,它将扩展到包含3行以上文本的整个文本。在Swift中,没有任何pod或插件,这怎么可能呢 谢谢。如果您想在不使用第三方库的情况下执行此操作,最简单的方法是调整UITextView的框架。在我的示例代码中,我的故事板中有一个文本视图和一个按钮。按下按钮时,会调用onReadMore。我只是在折叠时使用40作为大小,在展开时使用200作为大小 class ViewController: UIViewController {

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


谢谢。

如果您想在不使用第三方库的情况下执行此操作,最简单的方法是调整UITextView的框架。在我的示例代码中,我的故事板中有一个文本视图和一个按钮。按下按钮时,会调用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)
    }
  }
}
类ViewController:UIViewController
{
@IBOutlet弱var textView:UITextView!
重写func viewDidLoad()
{
super.viewDidLoad()
设frame=textView.frame
设newRect=CGRectMake(frame.origin.x,frame.origin.y,200,40)
textView.frame=newRect
}
@iAction func onReadMore(发件人:AnyObject)
{
设frame=textView.frame
如果框架高度<180
{
textView.frame=CGRectMake(frame.origin.x,frame.origin.y,200180)
}
其他的
{
textView.frame=CGRectMake(frame.origin.x,frame.origin.y,200,40)
}
}
}

如果您想在不使用第三方库的情况下执行此操作,最简单的方法是调整UITextView的框架。在我的示例代码中,我的故事板中有一个文本视图和一个按钮。按下按钮时,会调用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)
    }
  }
}
类ViewController:UIViewController
{
@IBOutlet弱var textView:UITextView!
重写func viewDidLoad()
{
super.viewDidLoad()
设frame=textView.frame
设newRect=CGRectMake(frame.origin.x,frame.origin.y,200,40)
textView.frame=newRect
}
@iAction func onReadMore(发件人:AnyObject)
{
设frame=textView.frame
如果框架高度<180
{
textView.frame=CGRectMake(frame.origin.x,frame.origin.y,200180)
}
其他的
{
textView.frame=CGRectMake(frame.origin.x,frame.origin.y,200,40)
}
}
}

这可以帮助您-我不想使用外部库…@Caspert您可以查看库并找出您想要使用的代码…这可以帮助您-我不想使用外部库…@Caspert您可以查看库并找出您想要使用的代码…如果高度未知/动态?您可以使用框架高度作为基准,然后向其添加固定数字。如果扩展高度未知/动态,该怎么办?您可以使用框架高度作为基准,然后向其添加固定数字。