NSLayoutConstraints加动画来改变约束
//
// ViewController.m
// NSLayoutAnimationDemo
//
// Created by ebaotong on 15/7/22.
// Copyright (c) 2015年 com.csst. All rights reserved.
// #import "ViewController.h"
#define kWeakSelf(weakSelf) __weak typeof(self)weakSelf = self
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self
@interface ViewController ()
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topConstraint;
@property (weak, nonatomic) IBOutlet UIView *topView; @end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/**需要对顶部约束拖线条来实现改变view的顶部约束*/
- (IBAction)btnClick:(UIButton *)sender
{ kWeakSelf(weakSelf);
[UIView animateWithDuration:0.8 delay: options:UIViewAnimationOptionCurveEaseInOut animations:^{ weakSelf.topConstraint.constant = [UIScreen mainScreen].bounds.size.height;
/**必须要添加不然看起来无明显效果*/
[weakSelf.view layoutIfNeeded];
} completion:^(BOOL finished) { weakSelf.topConstraint.constant = .f;
/**必须要添加不然看起来无明显效果*/
[weakSelf.view layoutIfNeeded];
}]; }
/**不需要对顶部约束拖线条来实现改变view的顶部约束*/
- (IBAction)btnAction:(UIButton *)sender {
kWeakSelf(weakSelf);
[self.view.constraints enumerateObjectsUsingBlock:^(NSLayoutConstraint *constraint, NSUInteger idx, BOOL *stop)
{
if ((constraint.firstItem ==weakSelf.topView)&&(constraint.firstAttribute == NSLayoutAttributeTop))
{
[UIView animateWithDuration: delay: options:UIViewAnimationOptionCurveEaseInOut animations:^{ constraint.constant = [UIScreen mainScreen].bounds.size.height;
/**必须要添加不然看起来无明显效果*/
[ weakSelf.view layoutIfNeeded]; } completion:^(BOOL finished) { constraint.constant = ;
/**必须要添加不然看起来无明显效果*/
[ weakSelf.view layoutIfNeeded];
}]; } }]; } @end

NSLayoutConstraints加动画来改变约束的更多相关文章
- uiwebview 加载html时字体变小 加载前或加载后改变字体大小
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #6122ae } p.p2 { margin: 0.0px 0. ...
- 给listview加动画,让动画执行结束后再刷新
问题:当给listview的条目加动画时,例如添加一个条目或者移除一个条目,动画效果会和添加删除条目的逻辑同时进行,因为动画并不是阻塞式的,这样会造成动画还没有结束,条目已经添加或者移除,从而动画作用 ...
- Jquery如何使用动画效果改变背景色
Jquery如何使用动画效果改变背景色 一.问题引入 jquery的animate动画虽然强大,但是无法使用其进行背景色(background-color)的动画效果变化,因为animate动画效果只 ...
- tableview中用动画效果改变cell的高度
我们要的效果大概就是如下效果: 当我们选择一个cell的时候,我们就要改变它的高度,并且以动画的形式. 我们该如何实现这个效果呢?我们主要需要使用以下这两个方法: - (CGFloat)tableVi ...
- bootstrap按钮加载状态改变
bootstrap里面有个激活按钮的时候,按钮变成不可用的: 按照官网里面的方法介绍是在button按钮加个data-loading-text="Loading..."属性,然后j ...
- C#图像处理(1):在图片上加文字和改变文字的方向
C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...
- 给网页中的button加动画效果
网页中的很多事件交互都是通过点击页面中的按钮来实现的,给按钮加一点动画效果也会让网页看起来生动一些,以下就是一个简单的例子: 此按钮的动画主要是通过css的transform动画,伪元素,伪类来实现: ...
- JQuery插件 aos.js-添加动画效果
原文地址:http://www.mamicode.com/info-detail-1785357.html 简介: aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页 ...
- iOS动画实现改变frme和contenOffset
[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.4]; [UIView setAnimat ...
随机推荐
- LOJ——#6277. 数列分块入门 1
~~推荐播客~~ 「分块」数列分块入门1 – 9 by hzwer 浅谈基础根号算法——分块 博主蒟蒻,有缘人可直接观摩以上大佬的博客... #6277. 数列分块入门 1 题目大意: 给出一个长为 ...
- JSONP代码收藏
摘抄自jQuery,用于JSONP请求. var callback = 'callback_' + (new Date() - 0), url = 'http://localhost/', scrip ...
- 从CSV文件中读取jpg图片的URL地址并多线程批量下载
很多时候,我们的网站上传图片时并没有根据内容进行文件夹分类,甚至会直接存储到阿里云的OSS或是七牛云等云存储上.这样,当我们需要打包图片时,就需要从数据库找寻分类图片,通过CURL进行下载.我最近刚刚 ...
- Excel表格
自己一个一个试出来,并写上解释. 还不熟练,待多写代码多练习. #!/usr/bin/python # -*- coding:utf-8 -*- import os import xlwt impor ...
- vuejs验证码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> ...
- BZOJ2730 矿场搭建 解题报告 点双联通分量
题意概述: 一张有向图,在其中设置一些关键点(即题目中的逃生出口),使得删除任意一个点之后其余点都可以到达至少一个关键点. 问至少需要设置多少中关键点,有多少种设置方法. 解析: 首先,这道题要求删掉 ...
- Linux统计行数命令wc(转)
Linux wc命令用于计算字数. 利用wc指令我们可以计算文件的Byte数.字数.或是列数,若不指定文件名称.或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据. 语 ...
- asciiflow
http://asciiflow.com/ https://maxiang.io/# http://www.jianshu.com/p/19432b5e3c60
- CF #328div2 D
这题不难,当时想出来了,可是却写不出来~~ 现在慢慢写回来,也写得好挫~ 可以知道,被攻击的城市必定可以组成一棵树,然后,传送到的点必定也是城市之一.如果出发后回到原点,则需要2E,E是树的边数,则2 ...
- jQuery Validate Ajax 验证
jQuery Validate Ajax 验证 <script type="text/javascript"> $(function() { $('#formCityL ...