UIScrollView - (bounces = NO) wydaje się przesłonić (pagingEnabled = YES)

Mam UIScrollView ze stronicowaniem (więc typowy model z UIPageControl i przeciąganiem / trzepaniem w lewo i w prawo między stronami), i mam to działające dobrze. Dziwne jest to, że gdy chciałem pozbyć się podskakiwania (tak, że nie widać czarnego za UI po lewej i prawej stronie), nagle stronicowanie już nie działa.

Innymi słowy, kiedy:

scrollView.pagingEnabled = YES;
scrollView.bounces = YES;

Wszystko działa dobrze, z wyjątkiem tego, że nie podoba mi się odbijanie na stronie (0) i stronie (długość-1). Ale kiedy to robię:

scrollView.pagingEnabled = YES;
scrollView.bounces = NO;

Zatrzymuje przyciąganie na miejsce na każdej stronie, zamiast tego traktuje wszystkie strony razem jako jedną długą stronę. Wydaje się więc, że z jakiegoś powodu stronicowanie zależy od podskakiwania, co jest w porządku, o ile mogę jakoś powstrzymać podskakiwanie. Czy istnieje inny sposób na pozbycie się tego? Czy jest coś, co robię źle?

EDYTOWAĆ:Rozwiązanie:

@interface PagingScrollView : UIScrollView
@end

@implementation PagingScrollView

- (id)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        self.pagingEnabled = YES;
        self.bounces = YES;
    }
    return self;
}

- (void)setContentOffset:(CGPoint)offset
{
    CGRect frame = [self frame];
    CGSize contentSize = [self contentSize];
    CGPoint contentOffset = [self contentOffset];

    // Clamp the offset.
    if (offset.x <= 0)
        offset.x = 0;
    else if (offset.x > contentSize.width - frame.size.width)
        offset.x = contentSize.width - frame.size.width;

    if (offset.y <= 0)
        offset.y = 0;
    else if (offset.y > contentSize.height - frame.size.height)
        offset.y = contentSize.height - frame.size.height;

    // Update only if necessary 
    if (offset.x != contentOffset.x || offset.y != contentOffset.y)
    {
        [super setContentOffset:offset];
    }
}

@end

questionAnswers(1)

yourAnswerToTheQuestion