установить размер страницы UIscrollView - PullRequest
2 голосов
/ 14 декабря 2011

Я искал, как сделать меню прокрутки с переносом в UIScrollview (зацикливание).Я проверил этот вопрос , и пример работает, и, возможно, это хороший подход.

Но вместо того, чтобы показывать только одну страницу (изображение), мне нужно отобразить 3 страницы и иметь возможность прокрутить одну страницувремя.

Так как я могу установить размер страницы UIScrollView на 1/3 меньше, чем у фрейма (думаю, так оно и будет работать) ??

Это достижимо ??Если нет, пожалуйста, направьте меня в другом направлении

Спасибо

Ответы [ 3 ]

5 голосов
/ 28 января 2013

Я полагаю, что вы говорите о том, что часть предыдущей страницы и часть следующей страницы видимы.Способ сделать это - установить рамку вида прокрутки так, как вам нужно (например, меньше, чем на экране), а затем отключить отсечение подпредставлений для вида прокрутки.Это достигнет желаемого эффекта.

1 голос
/ 16 июля 2015

Через некоторое время мне снова нужно решить эту проблему.

Я нашел решение, которое сработало для меня.

Проверьте этот ответ :

  1. Измените размер scrollView на нужный вам размер страницы
  2. Установите scroll.clipsToBounds = NO
  3. Создайте подкласс UIView (например, HackClipView) и переопределитеhitTest: withEvent: method

    -(UIView *) hitTest:(CGPoint) point withEvent:(UIEvent *)event
    {     
        UIView* child = [super hitTest:point withEvent:event]; 
        if (child == self && self.subviews.count > 0)  
        {
            return self.subviews[0];
        }
        return child;
    }
    
  4. Установите HackClipView.clipsToBounds = YES

  5. Поместите свой scrollView в этот HackClipView (с полным желаемым размером прокрутки)

См. этот ответ для получения более подробной информации

Обновление: Как указано в ответе lucius, теперь вы можете реализовать протокол UIScollViewDelegate ииспользуйте метод - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset.Поскольку targetContentOffset является указателем.Использование этого метода не гарантирует того же результата при просмотре страниц прокрутки, что пользователь может прокручивать сразу несколько страниц.Но установка descelerationRate на fast будет почти даст вам тот же результат

1 голос
/ 14 декабря 2011
  1. [theScrollView setFrame:<a frame>]; установит рамку вида прокрутки
  2. [theScrollView setContentSize:<a Size>];, чтобы установить размер содержимого просмотра прокрутки

Размер в 1. должен быть 1/3 размера, установленного в 2.

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