如何在swift中创建可扩展的文本字段/标签?

时间:2017-03-14 12:38:06

标签: ios swift xcode

我需要弄清楚如何编程这样的东西: enter image description here

文本会在用户单击向下按钮时展开,然后在单击后折叠回短版本。我有可以学习的图书馆吗?我是编程的初学者,只需要有关如何处理这项任务的建议,学习指南等等。

3 个答案:

答案 0 :(得分:9)

您所要做的就是将UILabel设置为numberOfLines让我们说7,换行模式为.byTruncatingTail

然后点击按钮,只需将numberOfLines更改为0,将换行模式更改为.byWordWrapping。然后,当您希望隐藏文本时,只需按下按钮并将UILabel设置为其初始值。

答案 1 :(得分:4)

要解决有关AutoLayout的问题read。这是一个很好的例子。

这是编码部分。此类包含IBOutlet的高度UITextView和按钮操作。

class ViewController: UIViewController {

    let defaultHeight = 128
    let expectedHeight = 600
    var state: Bool = false

    @IBOutlet weak var height: NSLayoutConstraint!

    @IBAction func showAction(_ sender: Any) {
        UIView.animate(withDuration: 0.3, animations: {
                self.state = !self.state
                self.height.constant = CGFloat(self.state ? self.expectedHeight: self.defaultHeight)
                self.view.layoutIfNeeded()
        })
    }
}

这是来自故事板。

enter image description here

答案 2 :(得分:1)

您可以为UILabel设置高度约束,并在点击按钮事件中将约束常量更改为标签的内容大小。

您可以使用

为其设置动画
UIView.animate(duration)