//
// 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:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
weakSelf.topConstraint.constant = [UIScreen mainScreen].bounds.size.height;
/**必须要添加不然看起来无明显效果*/
[weakSelf.view layoutIfNeeded];
} completion:^(BOOL finished) {
weakSelf.topConstraint.constant = 0.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:1 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
constraint.constant = [UIScreen mainScreen].bounds.size.height;
/**必须要添加不然看起来无明显效果*/
[ weakSelf.view layoutIfNeeded];
} completion:^(BOOL finished) {
constraint.constant = 0;
/**必须要添加不然看起来无明显效果*/
[ weakSelf.view layoutIfNeeded];
}];
}
}];
}
@end