Подтвердить что ты не робот

Пейджинг UIScrollView с разной шириной страницы

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

Цель состоит в том, чтобы сделать сборщик для разных точек во времени, например:

|  Now  |  Yesterday evening |  Last Week  |  Last Month  |
    ^              ^                ^              ^           <- stopps here

Здесь | Now | имеет меньшую ширину, чем | Yesterday evening |. При прокрутке по этим значениям прокрутка должна останавливаться в центре соответствующего значения.

Возможно ли это?

4b9b3361

Ответ 1

это возможно, но не так автоматически...

Я предполагаю, что вы должны реализовать метод протокола UIScrollViewDelegate:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

}

это метод, вызываемый, когда пользователь останавливается, чтобы переместить палец на scrollView, вы можете проверить внутри него координату вашего контента:

yourScrollView.contentOffset

а затем проверьте, какая из ваших страниц .x(зарегистрировать их в массиве при их создании или проверить происхождение всего вашего представления, добавленного в scrollView) ближе к нему, затем перейдите в offSet вашей страницы (с анимацией):

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated