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

NSLayoutConstraints加动画来改变约束

你可能感兴趣的:(constraints)