使用autoLayout布局view,在代码中修改frame解决方案

本文详细阐述了在iOS8环境下,如何解决使用AutoLayout设定约束后的视图进行动画移动时出现的问题。通过定义新约束、移除旧约束、添加新约束并调用layoutIfNeeded方法,实现了从初始位置(0,0,100,100)到目标位置(0,66,100,100)的平滑过渡动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在xib或者storyBoard中给aView使用autoLayout设定了约束,但是想让aView做一个简单的动画,比如从约束的A位置(0,0,100,100)移动到B位置(0,66,100,100)的简单动画。

那么你会发现,如果在xib或者storyBoard中设定了约束,在代码中直接修改aView的frame行不通的。

实现结果就是在ios7上没问题,但是在ios8上发现aView从A移动到B,但是又返回A(具体差别还没找到)

解决方案:

loginViewTopConstraint = [NSLayoutConstraint constraintWithItem:self.loginView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:66];//定义新约束

    [self.view removeConstraint:self.topConstraint];//移除旧约束

    [self.view addConstraint:loginViewTopConstraint];//添加新约束

    [self.view layoutIfNeeded];//使约束生效

 

转载于:https://www.cnblogs.com/guatiantian/p/4228876.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值