Как дочерние представления UIScrollView должны сообщать свои границы для contentSize? - PullRequest
3 голосов
/ 24 мая 2010

Я ищу советы по правильному дизайну представления.

У меня есть UIScrollView, который содержит одно или несколько пользовательских представлений, которые я создал.Моя проблема в том, кто сообщает scrollview, каким он должен быть.У меня есть следующее:

UIView  
+-UIScrollView  
  +-CustomView 1 with dynamic height depending on data
  +-CustomView 2 with dynamic Height depending on data

UIViewController создает новые экземпляры пользовательских представлений с данными, а затем добавляет их в качестве подпредставлений в UIScrollView.Проблема у меня заключается в том, как установить значение contentSize scrollview?Сейчас я этого не делаю, и содержимое прокрутки обрезается без возможности прокрутки.

  • Должен ли пользовательский вид вызывать [parent setContentSize:] в его drawRect:?
  • Должен ли UIViewController запрашивать пользовательское представление после создания, чтобы получить его границы, а затем вызывать setContentSize?
  • Должен ли я создать подкласс UIScrollView для переопределения addSubView для запроса высоты каждого подпредставления?
  • Есть ли что-то ещеЯ скучаю?

Надеюсь, я все правильно объяснил.Я новичок в этом и до сих пор разбираюсь в вещах.

1 Ответ

1 голос
/ 24 мая 2010

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

Установка его из drawRect: может существенно настроить бесконечный цикл.
Использование границ не дает координаты в родительском представлении.
Вы можете создать подкласс UIScrollView, если пользовательские представления не меняют размер.

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