какао - добавить вид в существующее окно и изменить его размер - PullRequest
2 голосов
/ 28 февраля 2012

Работа над проектом, в котором у меня есть существующее окно с видом, который принимает капли. Но после завершения удаления я хочу добавить табличное представление и сделать размер окна больше, чтобы соответствовать табличному представлению. Старое приложение appzapper было бы примером этого.

Я не делал этого раньше, и если бы кто-то мог указать мне правильное направление, как я это сделал, или учебник, который был бы великолепен.

1 Ответ

3 голосов
/ 28 февраля 2012

Есть много способов сделать это, но все они сводятся к следующему:

  1. Сделайте представление, в вашем случае, вероятно, пользовательское представление с представлением прокрутки и представлением таблицы внутри.Возможно, вы не захотите обернуть его в пользовательский вид, но это может пригодиться, если позже вам понадобится добавить кнопки или другие элементы.
  2. Установите рамку вида.Вы можете жестко закодировать его, или вы можете взять позиции других элементов и вычислить его оттуда.
  3. Скажите, к какому виду вы хотите добавить новое представление, чтобы добавить его (addSubview:)

Если позже вы захотите снова удалить его, затем вызовите removeFromSuperview в только что добавленном подпредставлении.

Re: 1 - вы можете сделать представление в виде пера или в коде, как выпредпочитайте.

В зависимости от вашего стиля кодирования, хитрость, которую стоит использовать, заключается в том, чтобы добавить подпредставление прямо в исходный дизайн в перо, затем удалить его в awakeFromNib и сохранить ссылку на него в контроллере.Затем вы измените размер исходного представления.

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

Сэтот подход, когда вы снова добавляете подпредставление, просто изменяете размер большего представления до его первоначального размера (может быть прочитано и сохраняется в контроллере во время awakeFromNib), затем добавляете подпредставление.У него уже будет правильный фрейм, и он сдвинется обратно на место, которое он имел в кончике, которую вы создали в Интерфейсном Разработчике (или его эквивалент XCode).

...