Autolayout и Facebook Pop

Есть ли в настоящее время способ использовать фреймворк Facebook Pop с автоматическим макетом или вам нужно использовать пружины и распорки? Я продолжаю читать, что это возможно, но я не знаю, каков синтаксис, чтобы иметь возможность анимировать верхнее ограничение представления.

4 ответа

Решение

В этом случае вы хотите анимировать NSLayoutConstraint, вы можете сделать следующее с POP, и это будет анимировать ограничение. Обратите внимание, что POPSpringAnimation добавляется к самому ограничению.

NSLayoutConstraint *constraint = // this is an NSLayoutConstraint that is applied to some view

POPSpringAnimation *layoutAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayoutConstraintConstant];
layoutAnimation.springSpeed = 20.0f;
layoutAnimation.springBounciness = 15.0f;
layoutAnimation.toValue = @(value to go too);
[constraint pop_addAnimation:layoutAnimation forKey:@"detailsContainerWidthAnimate"];

Основным свойством для использования является kPOPLayoutConstraintConstant, как показано выше. Так что, если вы хотите сделать это с автоматическими ограничениями макета, вы можете использовать это свойство ограничения.

Работа с масштабом и другими свойствами также работает с AutoLayout, поэтому у вас не должно возникнуть проблем с настройкой POP для работы с AutoLayout.

В Swift-3 код выглядит так: Предположим, что self.menuFooterConstant является ссылкой на ограничение пользовательского интерфейса на раскадровке.

        if let anim = POPSpringAnimation(propertyNamed: kPOPLayoutConstraintConstant) {
        anim.toValue = 142
        anim.springSpeed = 20
        anim.springBounciness = 15
        self.menuFooterConstant.pop_add(anim, forKey: "animationForTrendfooter")

    }

Правильный способ реализации поп-анимации с autolayout это инициализировать translatesAutoresizingMaskIntoConstraints

Вы можете напрямую анимировать ограничения. С POP просто используйте имя свойства kPOPLayoutConstraintConstant. Настройте анимацию и добавьте ее в само ограничение.

Если вы не хотите добавлять анимацию в само ограничение, имейте в виду следующее:

Не забудьте обновить ограничения вида как часть вашей анимации

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

* из Apple Docs

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