Как изменить высоту 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 и соответствующим образом изменяет размер, но ваши ограничения теперь настроены правильно, и это будет вести себя надлежащим образом на вашем устройстве или в симуляторе.

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

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

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

  • UIButton исчезает, когда я добавляю AVCaptureVideoPreviewLayer в свой UIView
  • Как нарисовать несколько UIBezierPath с разными цветами в UIView
  • создание пользовательской камеры с квадратным представлением на iOS
  • Пользовательский вид iOS: не удается одновременно удовлетворить ограничениям ошибок
  • XCode 4 Interface Builder: лучший способ работы с большим количеством перекрывающихся представлений
  • Поместите UIView поверх всех других видов
  • Как перенести UIView на «нижний», чтобы отображался следующий UIView?
  • вызыв removeFromSuperview дважды приведет к сбою или побочному эффекту
  • Получить фактические размеры iOS
  • UIPopoverController: Как переместить его?
  • Создайте UIView только с одной диагональной стороной
  • Interesting Posts

    Каким образом можно обрабатывать hi-res веб-изображения для дисплеев hi-res (в основном, дисплеи сетчатки iOS)?

    iPhone: странный пустой белый экран при запуске после переноса моего приложения на IOS 5

    Несколько экземпляров CBCentralManager?

    Почему пустая реализация drawRect: отрицательно скажется на производительности во время анимации

    UICollectionView: изменение размера ячейки для анимации при выборе

    libsqlite3.dylib, отсутствует требуемая архитектура i386

    Safari View Controller использует неправильный цвет строки состояния

    Использование + для решения проблемы взаимоблокировки

    Как автоматически преобразовать код ручного сохранения-выпуска в ARC?

    Как получить «NSURL» каталога документов?

    POST нескольких объектов json в методе POST Alamofire – Swift / IOS

    NSStream, получая процент прочитанных байтов

    Ошибка "не найдена для"

    iOS: Как создать пользовательский заголовок для таблицы?

    Высота ячеек iOS 8 – не может прокручиваться до последней строки

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