Как исправить положение текстового содержимого UITextView в Swift - PullRequest
0 голосов
/ 29 марта 2019

У меня есть UIView класс и в этом классе есть UITextView для использования в качестве inputText

В textViewDidChange от строки 2 до 5 с любым интер или добавлением текста я добавляю UITextView bounds.size.height столько, сколько нужно.

Проблема в том, что в строках 3 и 5 текст первой строки не отображается. Быть примерно на ряд выше своего собственного пространства. И создается из нижней части пустого пространства, без прокрутки.

Но текст в 4-й строке имеет точное положение

class QuestionCell: UIView, UITextViewDelegate{

    var paragraph = UITextView()

    func setParagraph(){
        let frame = CGRect(x: 50,
                           y: 0,
                           width: forground.width-55,
                           height: forground.height)
        paragraph.frame = frame
        paragraph.isEditable = true
        paragraph.delegate = self
        // forground is some UIView in this View
        forground.addSubview(paragraph)
    }
    func textViewDidChange(_ textView: UITextView) {
       paragraph.bounds.size.height = paragraph.paragraphHeight
    }
}

extension UITextView{
    var paragraphHeight: CGFloat{
        let fixedWidth = self.width
        let newSize = self.sizeThatFits(CGSize.init(width: fixedWidth,
                                                         height: CGFloat(MAXFLOAT)))
        var newFrame = self.frame
        newFrame.size = CGSize.init(width: CGFloat(fmaxf(Float(newSize.width),
                                                         Float(fixedWidth))),
                                    height: newSize.height)
        return newSize.height
    }
}

1 Ответ

1 голос
/ 30 марта 2019

При создании необходимо указать:

  paragraph.isScrollEnabled = false

После создания вы можете установить его обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...