视图渐变动画突兀现象的解释

如果项目中控件的约束用的是masonry,现在希望实现点击按钮渐变出现控件,那么方法有很多种,其中通过UIView的Animation方法是可以实现的.但是这里会有一个小坑,可能会造成出现的动画效果和预期的不一样.原因在于所需要动画控件的容器里面内容的多少.

// 1.实例化控件并通过masonry设置约束
UILabel *label = [UILabel createOneLabel:CGRectZero title:@"test" superView:self.view fontSize:13 textColor:[UIColor redColor]];
self.label = label;
label.backgroundColor = [UIColor grayColor];
[label mas_makeConstraints:^(MASConstraintMaker *make) {
    make.leading.trailing.equalTo(self.view);
    make.height.equalTo(@30);
    make.top.equalTo(self.view).offset(400);
}];

// 2.点击按钮的方法中实现动画效果
[UIView animateWithDuration:2 animations:^{
    if (btn.selected == YES) {
        self.label.height = 100;
    }else{
        // 和文本内容有关
        // 如果容器内部内容所需高度大于height  那么就是所需要的渐变
        // 如果容器没有内容,那么渐变的效果就突兀了
        self.label.height = 15;
    }
}];
  • 这是label没有文字显示出来的效果,当动画中height改为0就不会有这种突兀了


    432.gif
  • 当label中有文字,则根据文字具体大小,动画效果是不同的.

123123.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • 离开这个大北京了,内心难免有许多不舍。 刚开始来到这里时从居无定所,四处游荡,风餐露宿的生活到找到了一份稳定的工作...
    雷帅帅阅读 156评论 0 0
  • 玩具大王陈国泰收集玩具的癖好曾被父亲痛骂玩物丧志,为此父子俩的隔阂花了十几年才化解。这件事给陈国泰最大的感悟...
    小薇子阅读 855评论 0 0
  • 问题 你想要在多种情况的一个数据框、每种情况类型计数的数据框以及一个列联表之间转换。 方案 这里有3种数据结构代表...
    王诗翔阅读 1,226评论 0 1
  • 下面是稚隽教育小编为大家整理的一篇关于UKCAT考试分数有多重要的文章,供大家参考,下面是详细内容。 UKCAT考...
    peizhenjy阅读 210评论 0 0