UIView和Masonry实现动画效果

news/2025/2/8 20:39:20

Masonry 实现动画效果如下:

//button点击方法
- (void)clickedButton
{
    static BOOL isMove; //默认是NO
    Weakify(weakSelf);
    
    //告诉self.view约束需要更新
    [weakSelf.view setNeedsUpdateConstraints];
    //调用此方法告诉self.view检测是否需要更新约束,若需要则更新,下面添加动画效果才起作用
    [weakSelf.view updateConstraintsIfNeeded];
    
    if (isMove) {
        
        isMove = NO;
        //添加动画
        [UIView animateWithDuration:5 animations:^{
            [weakSelf.displayView mas_updateConstraints:^(MASConstraintMaker *make) {
                //更改距顶上的高度
                make.top.equalTo(weakSelf.baseView.mas_bottom).with.offset(100);
            }];
            
            //必须调用此方法,才能出动画效果
            [weakSelf.view layoutIfNeeded];
        }];
    }
    else{
        
        isMove = YES;
        //添加动画
        [UIView animateWithDuration:5 animations:^{
            
            [weakSelf.displayView mas_updateConstraints:^(MASConstraintMaker *make) {
                //更改距顶上的高度
                make.top.equalTo(weakSelf.baseView.mas_bottom).with.offset(-100);
            }];
            //必须调用此方法,才能出动画效果
            [weakSelf.view  layoutIfNeeded];
        }];
    }
}

 

重点说明:

转载于:https://www.cnblogs.com/xujinzhong/p/8421896.html


http://www.niftyadmin.cn/n/4582757.html

相关文章

android 底层日志 开发框架 崩溃后进行记录 LogReport

类别: 其他 (Others)打分: ★★★★★更新: 2016-07-24 22:05大小: 902 kb开发环境: Android Studio浏览: 205 次下载: 10 次项目地址: https://github.com/wenmingvs/LogReport 介绍…

Layui基本功能(增删改查)

话不多说,根据我前面的博客我们直接进行操作。记住以下的文件放置,防止操作出不来. 这是我们要完成的界面及功能 后台功能实现 数据查看 我们在userDao方法里面进行增删改查的方法我们在userAction进行方法的编写R工具类的介绍 查询 userDao方法 因为我…

CentOS6.8 x86_64bit shell脚本实现模拟nginx服务启动与关闭

shell脚本模拟nginx服务启动与关闭注意: 3个斜杠///后面表示在这表示对当前语句的解释,实际脚本中必须删除 #!/bin/bash///定义哪种脚本语言解释下面的语句[ -f /etc/init.d/functions ]&& . /etc/init.d/functions ///判断并加载系统函数nginx&…

线程安全和线程不安全的区别

线程安全 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全 就是不提供数据访问保护…

10分钟上线 - 利用函数计算构建微信小程序的Server端

摘要: 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播。 当微信小程序遇见serv…

安卓 eclipse 项目 迁移 android studio gradle 配置 热修复 annotations注解

repositories {mavenCentral()mavenLocal()jcenter() }buildscript {repositories {mavenCentral()mavenLocal()jcenter()}dependencies {classpath com.android.tools.build:gradle:2.1.0// annotations 注解classpath com.neenbedankt.gradle.plugins:android-apt:1.4// tin…

python 中正则表达式的使用

正则表达式的定义 正则表达式(re)(Regular Expression)。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字…

app混淆加固+防止反编译+360加固

android studio混淆加密,没有使用第三方加密后的效果好,混淆加密还能看到大体的混淆包名,使用了那些框架 而使用了360加固后,全部看不到了 下图是360加固window操作IDE,非常好用! 然后用反编译软件反编译后…