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

标签 ios swift uitextfield

我想知道是否有可能在 TextView 中只显示 3 行文本,当您单击阅读更多按钮时,它会扩展到包含超过 3 行文本的整个文本。在没有任何 Pod 或插件的情况下,这在 Swift 中如何实现?

谢谢。

最佳答案

如果您想在不使用另一个第 3 方库的情况下执行此操作,最简单的方法是调整 UITextView 的框架。在我的示例代码中,我的 Storyboard中有一个 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)
    }
  }
}

关于ios - 如何展开 - 在 Swift 中折叠 UITextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876158/

相关文章:

iphone - 如何使用 RubyMotion 进行本地化?

ios - 使用 - observeValueForKeyPath :ofObject:change:context: in Swift 3

ios - 无法从非父 VC 更新嵌入式子 VC

objective-c - 尝试将文本字段文本设置为字符串时出错

ios - 将新的 iOS 应用程序版本更新到 App Store

ios - Google 选择 iOS 位置

ios - 'finish in' 在 Swift 中是什么意思?

ios - 自动化UI测试中如何上传记录

uitextfield - 没有键盘的UITextField功能

swift - 每次 UITextField 文本属性在 ReactiveCocoa 5 中更改时如何获得信号