Как реализовать пользовательский UIView с ленивой / динамической загрузкой подпредставлений, аналогично UITableView - PullRequest
0 голосов
/ 16 декабря 2011

Итак, у меня в настоящее время есть класс GridView, который, по сути, выглядит так. Это подкласс UIView, который имеет промежуточную область, в которой есть множество подпредставлений, размещенных в виде сетки. В настоящее время я помещаю GridView в UIScrollView в перо. Когда GridView загружается, он должен загрузить все подпредставления одновременно, даже те, которые не видны.

Например, если у меня есть сетка с 5 столбцами и 500 строками, она загрузит сразу все 2500 представлений, что, как вы можете себе представить, займет много времени. Я хотел бы реализовать его так, чтобы он загружал только видимые виды, а пользователь прокручивал, загружал новые виды. Это похоже на то, как UITableView загружает свои ячейки.

Я предполагаю, что он будет следовать тому же шаблону, что и UITableView, но я не совсем уверен, как начать. У кого-нибудь есть какие-либо указатели / советы?

Заранее спасибо

1 Ответ

1 голос
/ 16 декабря 2011

Вы знаете размер каждой ячейки сетки. Я предполагаю, что вы реализуете методы UIScrollViewDelegate, поэтому вы можете получить сообщение при прокрутке. Итак, как только вы получите сообщение -(void)scrollViewDidScroll:(UIScrollView *), вычислите видимые ячейки и загрузите представления для ячеек.

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

Посмотрите на ivars и методы класса UITableView и подумайте о том, чтобы имитировать это поведение и реализацию.

...