Как добавить Instagram, как анимацию, которая минимизирует заголовок "Instagram" при прокрутке вниз в Swift 2?
Я пытаюсь добавить анимацию, похожую на Instagram, в мое приложение, которое минимизирует заголовок "Instagram" и перемещает отображение на всю страницу.
В моем приложении у меня есть две UILabels - chapterNameNumberLabel и chapterNameLabels и UITextView. При прокрутке в UITextView я хочу минимизировать chapterNameNumberLabel и chapterNameLabels и заполнить всю страницу содержимым UITextView.
Я попробовал следующее:(использовали указатели, упомянутые в ответе здесь Найти направление прокрутки в UIScrollView?
Получено ниже в viewDidLoad()
:
xLabel = self.chapNameNumberLabel.center.x;
yLabel = self.chapNameNumberLabel.center.y;
widthLabel = self.chapNameNumberLabel.frame.width;
heightLabel = self.chapNameNumberLabel.frame.height;
xNameLabel = self.chapterNameLabel.center.x;
yNameLabel = self.chapterNameLabel.center.y;
widthNameLabel = self.chapterNameLabel.frame.width;
heightNameLabel = self.chapterNameLabel.frame.height;
И называется метод ниже:
func scrollViewDidScroll(scrollView: UIScrollView) {
if(self.lastContentOffset > 0 ){
if (self.lastContentOffset > scrollView.contentOffset.y) {
//print("Up");
UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.chapNameNumberLabel.frame = CGRectMake(self.xLabel - 100, self.yLabel - 10, self.widthLabel, self.heightLabel);
self.chapterNameLabel.frame = CGRectMake(self.xNameLabel - 140, self.yNameLabel - 10 , self.widthNameLabel, self.heightNameLabel);
}, completion: nil)
}
else if (self.lastContentOffset < scrollView.contentOffset.y){
print("Down");
UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.chapNameNumberLabel.frame = CGRectMake( 100 , -10, 5, 5);
self.chapterNameLabel.frame = CGRectMake(50, -10, 5, 5);
}, completion: nil);
}
}
// update the new position acquired
self.lastContentOffset = scrollView.contentOffset.y
}
Анимация в порядке, но проблема, с которой я сталкиваюсь:
Я не могу получить эффект минимизации размера шрифта на ярлыках. Метки в моем приложении просто исчезают без уменьшения размера шрифта. Какой тип анимации следует использовать для достижения этой минимизации размера шрифта при прокрутке?
Кроме того, значения, которые я установил при прокрутке вниз (в пределах scrollViewDidScroll):
self.chapNameNumberLabel.frame = CGRectMake( 100 , -10, 5, 5);
self.chapterNameLabel.frame = CGRectMake(50, -10, 5, 5);
а при прокрутке - значения проб и ошибок. Метки вращаются неправильно при повороте экрана влево и вправо (на симуляторе). Может, кто-нибудь подскажет, как рассчитать это, чтобы оно работало на всех ориентациях экрана?
Я использовал Swift 2, Авто макет.