OS X Masonry просмотр анимации без эффекта

[macOS | OS X] масонство просмотра анимации без эффекта

  • [✔️] Я посмотрел на документацию
  • [✔️] Я заполнил этот шаблон выпуска.

Информация о выпуске

  • Платформа: OS X
  • Версия платформы: 10.12.6
  • Кладка Версия: 1.1.0

Описание проблемы

Я использую AutoLayout кладки в проекте приложения OS X, я нахожу анимацию перемещения в представлении без эффекта. Это означает, что представление напрямую перемещается в целевое местоположение и не требует анимации.

Мой код выглядит следующим образом:

[NSAnimationContext runAnimationGroup:^(NSAnimationContext * _Nonnull context) {
    [context setDuration:0.5];
    context.allowsImplicitAnimation = YES;
    [_playlistView mas_updateConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.mas_right).with.offset(-kPlaylistBuoyBtnW-kPlaylistMainViewW);
    }];
} completionHandler:^{
    debugMethod();
}];

Как реализовать? Лучше всего использовать пример кода.

Ценю, если какие-либо предложения или идеи.

1 ответ

Сначала объявите свойство в интерфейсе представления.

@property (nonatomic, strong) MASConstraint *leftConstraint;

Во-вторых, используйте это свойство для анимации.

[NSAnimationContext runAnimationGroup:^(NSAnimationContext * _Nonnull context) {
    [context setDuration:kPlaylistPopAnimationTimes];
    context.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    _playlistView.leftConstraint.animator.offset(-kPlaylistBuoyBtnW-kPlaylistMainViewW);
} completionHandler:^{
    [_playlistView updateBuoyBtnState:state];
}];

Наконец, другое направление анимации остается прежним.

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