Autolayout简单动画实现

2018-12-07  本文已影响0人  丹丹十个胆小鬼

1、改变UIView宽高的动画

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *redViewW;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *redViewH;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    self.redViewW.constant = 50;
    self.redViewH.constant = 50;
    [UIView animateWithDuration:1.0 animations:^{
        [self.view layoutIfNeeded];
    }];
}
@end

2、控件移除后的重布局(约束优先级的使用)

实现的效果


1.png

点击控制器后:


2.png

思路:
// 点击控制器,移除绿色View,紫色view靠右移动到距离红色view为10的位置
// 方法:由于绿色view将会被移除,所以紫色view的约束不能以绿色view为参照,
// 紫色view左边相对间距约束要设置两个:一个相对绿色view间距为10,另一个是相对红色view间距为10(这个优先级更低)


3.png
上一篇 下一篇

猜你喜欢

热点阅读