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: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

posted @ 2015-07-22 14:38  曹县三胖暴打大猩猩  阅读(334)  评论(0编辑  收藏  举报