UIView的animateWithDuration动画不执行问题

简介: UIView的animateWithDuration动画不执行问题

部分场景,基本动画不执行:

[UIView animateWithDuration:animationDuration animations:^{ } completion:^(BOOL finished) { }];

其实想解决很简单,就是调用布局重新绘制函数:[self layoutIfNeeded];

具体的例子是:

        [_comTool setKeyBoardChangeBlock:^(CGFloat height, CGFloat animationDuration) {
            if (DYGlobleData.isLogin) {
                if(animationDuration <= 0)
                {
                    //防范式编程,理论不会出现
                    weakSelf.bgV.hidden = NO;
                }
                else
                {
                    weakSelf.bgV.hidden = (height<=0);
                    [UIView animateWithDuration:animationDuration animations:^{
                        if((height<=0))
                        {
                            [weakSelf.comTool mas_updateConstraints:^(MASConstraintMaker *make) {
                                make.height.mas_equalTo(BaseSize(100));
                                make.width.mas_equalTo(KScreenW);
                                make.bottom.mas_equalTo(BaseSize(100) -(49+(BR_BOTTOM_MARGIN?24:0)));
                            }];
                            [weakSelf.comTool updateCommentTVWithShift:(BaseSize(100) -(49+(BR_BOTTOM_MARGIN?24:0))+(BR_BOTTOM_MARGIN?24:0))];
                        }
                        else
                        {
                            [weakSelf.comTool mas_updateConstraints:^(MASConstraintMaker *make) {
                                make.height.mas_equalTo(BaseSize(100));
                                make.width.mas_equalTo(KScreenW);
                                make.bottom.mas_equalTo(-height);
                            }];
                            [weakSelf.comTool updateCommentTVWithShift:0];
                        }
                        [weakSelf layoutIfNeeded];
                    } completion:^(BOOL finished) {
                    }];
                }
            } else {
                weakSelf.bgV.hidden = YES;
                [weakSelf.comTool mas_updateConstraints:^(MASConstraintMaker *make) {
                    make.height.mas_equalTo(BaseSize(100));
                    make.width.mas_equalTo(KScreenW);
                    make.bottom.mas_equalTo(BaseSize(100) -(49+(BR_BOTTOM_MARGIN?24:0)));
                }];
                [weakSelf.comTool updateCommentTVWithShift:(BaseSize(100) -(49+(BR_BOTTOM_MARGIN?24:0))+(BR_BOTTOM_MARGIN?24:0))];
            };
        }];

目录
相关文章
|
2月前
|
前端开发
HarmonyNext动画大全02-显式动画
HarmonyNext动画大全02-显式动画
37 2
HarmonyNext动画大全02-显式动画
|
XML Android开发 数据格式
动画必须有(一): 属性动画浅谈
目录 前言 ObjectAnimator的初步使用 用AnimatorSet进行动画混合 将动画写在xml中 动画监听 ViewPropertyAnimator上手 最后 前言 官方文档传送门 属性动画是非常非常好用的, 谷歌自己都说这是一个强大的框架.
1233 0
|
JavaScript 算法 前端开发