Как предотвратить построитель интерфейса от добавления элементов в пользовательский вид? - PullRequest
0 голосов
/ 22 сентября 2018

ОБНОВЛЕНИЕ: Отредактировано для ясности.

Это не showtopper, но это раздражает, и я хотел бы выяснить, как решить эту проблему.

У меня есть пользовательский UIView.Точнее, UIScrollView, который программно заполняется группой UIViews во время выполнения.Он не предназначен для того, чтобы что-либо встраивать в Интерфейсный Разработчик (IB).

Что происходит с любым UIView, так это то, что при перетаскивании на него другого элемента UIView становится «сбрасываемым» и позволяет другому элементубыть добавленным в него.

Есть несколько нативных элементов Apple, которые не позволят вам добавить в них что-либо, например UIPickerView.

Есть ли флаг или что-то, что я могу установить, чтобыЭто не позволит IB добавить что-либо к этому?

Как я уже сказал, не демонстратор.Если что-то добавляется, оно уничтожается до того, как запрограммировано заполнение, но кажется, что оно «аккуратнее», чтобы дать понять, что оно не «сбрасывается».

ОБНОВЛЕНИЕ: На скриншотах нижепредставление выбора входа в систему - это стандартное представление UIPickerView, а представление скроллера результатов отображения - это мой пользовательский скроллер.Если я перетаскиваю что-то из библиотеки и пытаюсь добавить его в окно выбора, ничего не происходит.Тем не менее, я могу добавить его в окно просмотра результатов.

Я хочу, чтобы я мог объявить представление просмотра результатов как «зону без полета», чтобы его нельзя было сбросить.

Надеюсь, это проясняет ситуацию.

Cannot Drop On PickerView

Невозможно перейти на PickerView

enter image description here

Можно добавить в мой пользовательский вид

1 Ответ

0 голосов
/ 22 сентября 2018

Я не говорю, что это отличное решение, но если вы используете раскадровку (не XIB), то, похоже, она работает ...

  1. В вашей раскадровке вместо перетаскиванияпрокрутите представление из библиотеки, перетащите представление контейнера.
  2. IB автоматически создает новую сцену раскадровки, связанную с новым представлением контейнера, путем внедрения.Удалите вновь созданную сцену.
  3. Установите для пользовательского класса представления контейнера значение UIScrollView.

IB не позволяет добавлять какие-либо подпредставления в представление контейнера.

Обратите внимание, что IB также не отображает какие-либо UIScrollView -специфичные свойства в инспекторе Атрибутов, поэтому, если вам нужно настроить это броское представление прокрутки, вы должны сделать это программно.

Библиотекане предлагает вид контейнера в xib, поэтому требуется раскадровка.

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