Страницы

Поиск по вопросам

вторник, 17 декабря 2019 г.

горизонтальный scrollView

#ios #objective_c #scroll #scrollview


У меня есть горизонтальный scrollView. 0 - это стартовый экран. Хочу задать ограничения
кнопкам. next должна листать вправо от 0 до 5. back должна листать влево от 5 до 0
(не -1). Как это сделать?

-(IBAction)next:(id)sender
{
    self.currentPage++;
    CGFloat pageWidth = scroll.frame.size.width;
    [scroll setContentOffset:CGPointMake(pageWidth*self.currentPage, 0) animated:YES];
}

-(IBAction)back:(id)sender
{
    self.currentPage--;
    CGFloat pageWidth = scroll.frame.size.width;
    [scroll setContentOffset:CGPointMake(pageWidth*self.currentPage, 0) animated:YES];
}

    


Ответы

Ответ 1



в next: первой строкой дописать if(self.currentPage == 5) return; // или 4, если у вас 5 экранов всего в back: if(self.currentPage == 0) return; чтобы просто игнорировать нажатия.

Ответ 2



Перед сдвигом проверяй scroll.contentOffset.x. Он не должен быть меньше 0 и больше pageWidth*4. В идеале после каждого сдвига проверяешь scroll.contentOffset.x. Если он == 0, то деактивируешь кнопку back. Аналогично для кнопки next.

Комментариев нет:

Отправить комментарий