美文网首页iOS踩过的坑系列
iOS踩过的坑之使用Masonry做动画

iOS踩过的坑之使用Masonry做动画

作者: Shaw1211 | 来源:发表于2019-04-24 14:23 被阅读0次

    动画问题,和普通的方法实现差不多,重点只是修改约束后调用

    [view.superview layoutIfNeeded];
    

    而已

    [view mas_makeConstraints:^(MASConstraintMaker *make) {
    
      make.top.mas_equalTo(400);
    
      make.left.mas_equalTo(100);
    
      make.size.mas_equalTo(CGSizeMake(100, 100));
    
    }];
    
    [view.superview layoutIfNeeded];
    //如果其约束还没有生成的时候需要动画的话,就请先强制刷新后才写动画,否则所有没生成的约束会直接跑动画
    
    [UIView animateWithDuration:3 animations:^{
    
      [view mas_updateConstraints:^(MASConstraintMaker *make) {
    
          make.left.mas_equalTo(200);
    
    }];
    
    [view.superview layoutIfNeeded];//强制绘制
    
    
    

    注意此处一定是改变约束的父视图调用layoutIfNeeded函数

    - (void)tapTeacherVideoView {
        if (self.isTeacherSplitScreen) {
            [self.studentVideoView removeFromSuperview];
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:.5f];
            [self.teacherVideoView mas_updateConstraints:^(MASConstraintMaker *make) {
                make.width.leading.equalTo(self.view);
            }];
            [self.view layoutIfNeeded];
            [UIView commitAnimations];
            self.teacherSplitScreen = NO;
        }
    }
    

    相关文章

      网友评论

        本文标题:iOS踩过的坑之使用Masonry做动画

        本文链接:https://www.haomeiwen.com/subject/gjkggqtx.html