Я не могу придумать более чистое решение, чем выполнять математику на лету. Если желаемая длина страницы составляет 100 пикселей, чем «слайд» UIImage, чтобы она оставалась относительно фактической страницы. Так что-то вроде:
CGFloat pageWidth = 100;
int numPages = ceilf(myImageView.bounds.size.width/pageWidth);
scrollView.contentSize = CGSizeMake(numPages * scrollView.bounds.size.width,
scrollView.bounds.size.height);
Тогда подкласс layoutSubviews
метод мнение о скроллинга:
- (void)layoutSubviews {
int numPages = ceilf(myImageView.bounds.size.width/pageWidth);
CGRect visibleBounds = [self bounds];
CGFloat start = visibleBounds.origin.x;
CGFloat offset = start/pageWidth;
myImageView.frame = CGRectMake(offset, myImageView.frame.origin.y,
myImageView.frame.size.width,
myImageView.frame.size.height);
}
Я не проверял это на всех, но, надеюсь, он получает вас на рабочем треке. То, что это должно делать, перемещает изображение, когда вы прокручиваете так, чтобы оно выглядело так, что каждая «страница» перемещает только изображение 100px.
спасибо MrHen! ... просто следующий вопрос ... в вашем методе layoutSubvies, в чем цель numPages? ура! – alex25
Ммм ... Я не помню. Я, наверное, забыл вытащить эту линию, поскольку, очевидно, она больше ничего не делает. :) – MrHen