У меня есть горизонтальное прокрутка с 3 страницами.iOS градиент анимации с uiscrollview paging
Я хотел бы иметь один цвет фона для каждой страницы и рисовать градиент между 3 цветами.
Страница 1 с зеленым, стр. 2 с синим и стр. 3 с красным. Как я могу это сделать?
Я думал о ScrollViewDidScroll
метод делегата:
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
CGFloat pageWidth = self.statisticScrollView.frame.size.width;
float fractionalPage = self.statisticScrollView.contentOffset.x/pageWidth;
NSLog(@"fractional Page: %f", fractionalPage);
NSInteger lowerNumber = floor(fractionalPage);
NSLog(@"lower Page: %i", lowerNumber);
NSInteger upperNumber = lowerNumber + 1;
NSLog(@"upper Page: %i", upperNumber);
if (self.lastContentOffset > sender.contentOffset.x){
//RIGHT --->
if (lowerNumber == 0) {
//gradient green to blue
}else if (lowerNumber == 1){
//gradient blue to red
}else if (lowerNumber == 2){
//end pages
}
}else if (self.lastContentOffset < sender.contentOffset.x){
//LEFT <----
if (lowerNumber == 0) {
//gradient blue to green
}else if (lowerNumber == 1){
//gradient red to blue
}else if (lowerNumber == 2){
//end pages
}
}
}
Могу ли я использовать fractionalPage
, чтобы установить процент градиента?
Я прочитал о startPoint
и endPoint
свойствах CAGradientLayer
, но кажется, что он работает некорректно.
Любые предложения будут оценены! Заранее благодарен
Здравствуйте, спасибо за Ваш ответ. Я попробовал ваш код. Это работает на всех, но это не тот эффект, о котором я думал ... спасибо в любом случае! Я пытаюсь использовать значение 'fractionalPage' (если я нахожусь в значениях первой страницы, от 0.0 до 1.0 - если я во втором, значения идут от 1.0 до 2.0 ...), чтобы настроить расположение конечного цвета (синий цвет, если мы находимся на первой странице). – Tenaciousd93