Как мне динамически добавлять изображения в UIScrollView? - PullRequest
1 голос
/ 24 октября 2010

Я работаю над приложением, которое обновляет как UITableView, так и UIScrollView. Мне нравится, как работает обновление UITableView. При добавлении, удалении или обновлении элементов я вызываю insertRowsAtIndexPaths:withRowAnimation:, reloadRowsAtIndexPaths:withRowAnimation: и deleteRowsAtIndexPaths:withRowAnimation: в зависимости от ситуации. Однако обновление UIScrollView оказалось более сложной задачей.

Так как я могу это сделать? Мой UIScrollView содержит изображения, и я хочу иметь возможность вставлять, обновлять и удалять отдельные изображения - с анимацией - эффективно, плавно и, возможно, в произвольном порядке. Как можно делать такие вещи?

В качестве примера, у меня есть такой код в моей реализации UIScrollViewDelegate для добавления нового изображения:

if (newImageindex == currentImageIndex) {
    [scrollView setNeedsDisplay];
    [scrollView setContentOffset:portalView.contentOffset animated:YES];
} else if (newImageIndex < currentImageIndex) {
    currentImageIndex++;
    CGPoint offset = portalView.contentOffset;
    offset.x += portalView.frame.size.width;
    portalView.contentOffset = offset;
}

Я думаю, это близко, но не совсем верно. Я заканчиваю с добавлением изображений, но UIScrollView, кажется, прокручивается в положение до первого изображения в представлении. Если я начну прокручивать его вручную, появится первое изображение. Это похоже на прокрутку до позиции -1 в моих изображениях.

Пример, возможно, не поможет осветить мою проблему, но, безусловно, это общая необходимость динамической перенастройки изображений, появляющихся в UIScrollView. Каков уровень техники в этом?

1 Ответ

0 голосов
/ 12 февраля 2011

UIScrollView не настолько специализирован и структурирован, как UITableView.Первый - это общий вид, который прокручивает и масштабирует все, что вы в него вставляете, и вы можете помещать в него любые подпредставления в любом месте, тогда как последний сделан специально для отображения списков ячеек, расположенных друг над другом.

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

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