UITextView и другие элементы внутри UIScrollView с AutoLayout - PullRequest
0 голосов
/ 17 июня 2020

Моя точка зрения следующая.

enter image description here

I am expanding the text view programmatically depending on the text as follows

func textViewDidChange(_ textView: UITextView) {
    let size = CGSize(width: titleAndDescriptionContainerView.frame.width, height: .infinity)
    let estimatedSize = noteDescription.sizeThatFits(size)
    noteDescription.constraints.forEach{
        (constraint) in if constraint.firstAttribute == .height{
            constraint.constant = estimatedSize.height
        }
    }
    titleAndDescriptionContainerView.constraints.forEach{
        (constraint) in if constraint.firstAttribute == .height{
            constraint.constant = estimatedSize.height + noteTitle.frame.height
        }
    }
    entireScrollView.contentSize = CGSize(width: entireScrollView.frame.width, height: (imageScrollView.frame.height + titleAndDescriptionContainerView.frame.height + audioContainerView.frame.height))
}

I am also changing the size of the entire scroll view. But I am not able to scroll my view when the text is long. have a look at these screenshots.

enter image description here


введите описание изображения здесь

1 Ответ

0 голосов
/ 17 июня 2020

Ваши ограничения определены неправильно. Вам необходимо переопределить их следующим образом:

  1. Убедитесь, что ваш весьScrollView закреплен на краях представления root.

  2. Закрепить в Руководство по макету содержимого CompleteScrollView следующее:

    • ImageScrollView (верхний, ведущий, конечный)
    • Аудио-контейнерное представление (ведущее, конечное)
    • Заголовок и описание Вид контейнера (ведущий, конечный, нижний)
  3. ImageScrollView, представление аудиоконтейнера, а также заголовок и описание контейнера должны иметь одинаковую ширину с руководством по макету кадра CompleteScrollView.

...