Как добавить 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

}

Анимация в порядке, но проблема, с которой я сталкиваюсь:

  1. Я не могу получить эффект минимизации размера шрифта на ярлыках. Метки в моем приложении просто исчезают без уменьшения размера шрифта. Какой тип анимации следует использовать для достижения этой минимизации размера шрифта при прокрутке?

  2. Кроме того, значения, которые я установил при прокрутке вниз (в пределах scrollViewDidScroll):

self.chapNameNumberLabel.frame = CGRectMake( 100 , -10, 5, 5); self.chapterNameLabel.frame = CGRectMake(50, -10, 5, 5); а при прокрутке - значения проб и ошибок. Метки вращаются неправильно при повороте экрана влево и вправо (на симуляторе). Может, кто-нибудь подскажет, как рассчитать это, чтобы оно работало на всех ориентациях экрана?

Я использовал Swift 2, Авто макет.

0 ответов

Другие вопросы по тегам