UIScrollView - (bounces = NO), кажется, переопределяет (pagingEnabled = YES)
У меня есть UIScrollView с подкачкой страниц (таким образом, типичная модель с UIPageControl и перетаскиванием влево и вправо между страницами), и я 'у меня это работает нормально. Странная вещь в том, что когда я хотел избавиться от подпрыгивания (чтобы вы моглия не вижу черного за пользовательским интерфейсом слева и справа), внезапная подкачка больше не работает.
Другими словами, когда:
scrollView.pagingEnabled = YES;
scrollView.bounces = YES;
Все работает нормально, кроме какt как подпрыгивание на странице (0) и странице (длина-1). Но когда я делаю это:
scrollView.pagingEnabled = YES;
scrollView.bounces = NO;
Он перестает привязываться к каждой странице, вместо этого рассматривая все страницы вместе как одну длинную страницу. Таким образом, кажется, что по какой-то причине подкачка зависит от подпрыгивания, что хорошо, если я могу как-то остановить подпрыгивание. Так есть ли другой способ избавиться от этого? Или я что-тоя делаю неправильно?
РЕДАКТИРОВАТЬ:Решение:
@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 contentSize.width - frame.size.width)
offset.x = contentSize.width - frame.size.width;
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