Как изменить высоту uiview с помощью автоматического макета?

Поэтому я создал этот сценарий, чтобы понять, как представления увеличиваются по высоте в соответствии с их содержанием. Однако я все еще не могу это сделать.

Это то, что у меня есть сейчас:

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

текстовое изображение растет в соответствии с содержанием. однако содержащийся в нем uiview исчезает. какие ограничения следует использовать, чтобы при увеличении размера uitextview его родительское представление также увеличивалось по высоте?

3 Solutions collect form web for “Как изменить высоту uiview с помощью автоматического макета?”

ON UITextView делает ваш выбор не выбранным.

  • Прокрутка включена
  • Отказы
  • Отклонение по горизонтали
  • Отскок вертикально
  • Показывает горизонтальный индикатор
  • Показывает вертикальный индикатор

Теперь измените ограничения автоматического макета таким образом.

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

Ограничения для родительского вида

Начните с очистки всех ваших ограничений от всего, чтобы у нас появился новый сланец.

Шаг 1. Создайте иерархию своего представления. В этом примере нам нужно что-то вроде этого:

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

Представление контроллера контроллера, которое мы будем называть parentView имеет subview, которое мы будем называть redView . У этого redView есть дочерний элемент, текстовое поле, которое мы назовем textField .

Иерархия выглядит следующим образом:

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

Шаг 2. Задайте любые ограничения, характерные для любого отдельного вида. В этом случае мы, вероятно, только хотим установить ограничение ширины на нашем текстовом представлении. Пока я просто установил ширину 200pt.

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

Шаг 3: Установите ограничения между textView и его родителем, redView . Предположим, мы хотим, чтобы граница 10pt была полностью. Давайте добавим эти ограничения:

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

Как только мы добавим эти ограничения, мы получим предупреждения и ошибки автоматического макета. Для начала, потому что ограничения, которые я добавил для и для просмотра супервизора, не соответствуют фактическим размерам, я получу несколько предупреждений:

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

Будут также некоторые ошибки, описывающие отсутствующие позиции X и Y для redView и для textView . Здесь, по необходимости, в два раза больше ошибок. textView знает, где разместить себя относительно redView . Нам не нужно больше ограничений для сортировки позиции textView . Тем не менее, redView не знает, где еще позиционировать … и поэтому, в конечном счете, textView тоже вроде точно не знает.

Мы можем обновить textView , чтобы избавиться от предупреждений, но давайте продолжим и исправим фактические ошибки.

Шаг 5: Установите ограничения superView относительно superView . redView уже знает, какой размер будет. Обратите внимание, что у нас не было ошибок для redView . Он просто не знает, где быть. В этом случае я пойду просто и скажу, что мы хотим, чтобы redView был центрирован. Поэтому мы хотим добавить эти ограничения:

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

Теперь мы устранили некоторые проблемы. Единственная проблема, которая остается, – это height для всего.

Чтобы исправить это, мы должны установить приоритеты определения размера содержимого textView . Установите их все на 1000 и измените свойство «Внутренний размер» на «Заполнитель».

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

К настоящему времени все ошибки автоматического макета должны исчезнуть, и мы должны быть оставлены только с предупреждениями, потому что наши рамки раскадровки не соответствуют тем, о чем говорят наши ограничения.

Мы можем исправить это, выбрав parentView и обновив все фреймы:

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

Есть одна заключительная оговорка к этой головоломке авто макета, когда дело доходит до автосохранения на основе размера контента: что произойдет, если наш текстовый вид не будет содержать контент?

Если в нашем текстовом представлении нет контента, автомакет будет выбирать высоту 0, и наши пользователи даже не смогут увидеть, что там есть текстовое представление, а гораздо меньше, чтобы добавить контент (и расширить его). При использовании автоматического макета и определения размера контента мы всегда должны быть уверены, что мы установили либо явный, либо минимальный размер для представления содержимого.

Нам не нужно беспокоиться о нашей textView , поскольку мы устанавливаем это явно на 200. Поэтому давайте добавим ограничение минимальной высоты. Начните с добавления любого ограничения высоты:

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

Теперь перейдите к инспектору размера для textView , найдите это ограничение по высоте, которое мы добавили, и textView его на ограничение, большее или равное ограничению:

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

Storyboard не будет отражать изменения в содержании в нашем textView и соответствующим образом изменяет размер, но ваши ограничения теперь настроены правильно, и это будет вести себя надлежащим образом на вашем устройстве или в симуляторе.

На странице раскадровки щелкните по тексту. Затем нажмите на маленький треугольник в правом нижнем углу.

Нажмите сначала «Очистить ограничения». Затем «Добавить недостающие ограничения».

Это самый простой способ.

  • Что такое _UILayoutGuide?
  • UIButton не работает в uiscrollView
  • Анимация UIView горизонтально с использованием UIDynamicAnimator
  • Фоновая задержка FXBlurView
  • Вызов завершения анимации UIView?
  • Как обнаружить «Touch Down» в режиме просмотра UIScrollView?
  • IOS Swift3 как удалить пользовательский UIView случайным образом
  • Передача событий на другое представление
  • Какова связь между началом кадра в UIView и его центром?
  • Странное поведение происходит при использовании анимации UIView и CGAffineTransform
  • Ландшафтный режим UIView.center дает координаты режима Potrait
  • Interesting Posts

    UITableView: после удаления строк и добавления новых, новые строки не выбираются

    Добавить текст в отдельные сегменты видео с помощью SCRecorder в iOS

    Измените размер UIImage, сохраняя соотношение сторон и ширину

    Как показать бок о бок два превью камеры в iOS объектив-C для приложения vr?

    Как получить текущее время на основе TimeZone в объекте c?

    Есть ли способ увеличить максимальный размер блока BTLE для записи значения, т.е. CBCentral maximumUpdateValueLength?

    Ошибка Apple Mach-O Linker при использовании классов Core Data в OCUnit

    Возможно ли, чтобы вторичный вид автоматически изменялся в раскадровке, поскольку изменения «вид как» изменяются?

    Отсутствует или недействителен CFBundleExecutable в Info.plist

    Список расширений файлов для поддерживаемых типов мультимедиа MPMoviePlayerController

    Отобразить размер изображения в формате MB IOS 7

    Как отключить кнопку, даже если она не работает в фоновом режиме быстро?

    приложение iOS с целями watchkit: `Исполняемый был подписан с ошибкой недопустимых прав доступа для профиля распространения

    Настроить встраиваемый контент в UITableView

    Уведомление загрузки AVQueuePlayer / AVPlayer?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.