微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 如何动态地将TextView高度更改为阈值,然后允许滚动?

我有一个TextView,它具有最小高度为33的约束.从故事板中禁用滚动. TextView应根据内容增加高度,直到达到100的最大高度.然后我将scrollEnabled更改为true,将TextView的高度更改为最大高度100,但高度更改为33.如何修复这个问题?

import UIKit

class ViewController: UIViewController,UITextViewDelegate {

@IBOutlet weak var messageTextView: UITextView!
let messageTextViewMaxHeight: CGFloat = 100

override func viewDidLoad() {
    super.viewDidLoad()
    self.messageTextView.delegate = self
}

func textViewDidChange(textView: UITextView) {

    if textView.frame.size.height >= self.messageTextViewMaxHeight {
        textView.scrollEnabled = true
        textView.frame.size.height = self.messageTextViewMaxHeight
    } else {
        textView.scrollEnabled = false
    }
}
}

enter image description here

解决方法

看来你的代码需要两个更改,它会正常工作.

>取代最小约束高度,提供最大高度100:

Height Constraint for TextView

>更改代码如下:

import UIKit

class ViewController: UIViewController,UITextViewDelegate
{
    @IBOutlet weak var messageTextView: UITextView!

    let messageTextViewMaxHeight: CGFloat = 100
    override func viewDidLoad()
    {
        super.viewDidLoad()
        messageTextView.delegate = self
    }

    func textViewDidChange(textView: UITextView)
    {
        if textView.contentSize.height >= self.messageTextViewMaxHeight
        {
            textView.scrollEnabled = true
        }
        else
            {
            textView.frame.size.height = textView.contentSize.height
            textView.scrollEnabled = false // textView.isScrollEnabled = false for swift 4.0
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐