UIScrollView - подкачка UIImage больше, чем ширина экрана - PullRequest
0 голосов
/ 20 июня 2011

В настоящее время я разрабатываю приложение для iPad, которое использует UIScrollView. UIScrollView заполняется UIImage, и все изображения больше ширины iPad, в два раза больше ширины, 1536 пикселей. То, что я хотел бы сделать, это при прокрутке / пролистывании прокручивается ко второму изображению, то есть 1536, и третьему изображению до 3072 и так далее. Это просто, чтобы увидеть быстрое изображение при скольжении. Я взглянул на scrollViewDidEndDragging, но иногда он становится действительно неприятным и нервным.

Есть ли способ настроить анимацию для прокрутки на 1536 каждый раз, кроме последнего UIImage в UIScrollView? Я знаю, что вы можете использовать setContentOffset, но если я использую это в вышеприведенном методе, он не будет работать так же, как и текущий переход, и, следовательно, делает его очень нервным.

Редактировать

for (i = 1; i <= kNumImages; i++) 
{
    NSString *imageName = [NSString stringWithFormat:@"cocktail_%d.png", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    CGRect rect = imageView.frame;
    rect.size.width = kMainImageWidth;
    rect.size.height = kMainImageHeight;
    rect.origin = CGPointMake(xpos, 0);
    imageView.frame = rect;

    [mainImgScrollView addSubview:imageView];
    [imageView release];
    xpos += kMainImageWidth;
 }

Редактировать

Все, что мне нужно было сделать, это сделать UIScrollView 1536px шириной, и это сработало. Приложение будет иметь 6 изображений для начала и более в будущем. Надеюсь, не будет проблем с памятью для начала?

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Размер страницы соответствует размеру UIScrollView.Вполне приемлемо сделать сам UIScrollView больше, чем ширина экрана iPad.Если вы сделаете UIScrollView шириной 1536px, то каждая страница будет иметь ширину 1536px.

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

(Однако вы захотитепереосмыслите свою архитектуру, поскольку приложение, в которое вы предварительно перетянули несколько изображений шириной 1536 пикселей, не будет работать (потому что оно превысит объем доступной памяти для устройства). Видеоролики WWDC2010 содержат отличную беседу на эту тему, например, о том, как создать страницупросмотр с прокруткой, позволяющий переходить от изображения к изображению.)

0 голосов
/ 20 июня 2011

Я думаю, что вы хотите включить подкачку в представлении UIScroll.Это сделает его «привязанным» к ширине прокрутки.Он будет вести себя как домашний экран на iPad / iPhone.Возможно, вам придется сделать рамку вашего scrollView шире экрана, чтобы получить правильный эффект подкачки.Вы можете столкнуться с некоторым отставанием, независимо от размера ваших изображений.

...