iOS中的layoutIfNeeded立即执行约束重置
来源:互联网 发布:零基础学算法机械工业 编辑:程序博客网 时间:2024/06/03 19:01
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局
这个动画中有用到 举个栗子� 。
如图 , 上面有个label ,中间有个按钮 , label已经被自动布局到左上角 。 然后我们那个left的constraint
@IBOutlet weak var leftContrain:NSLayoutConstraint!
在viewDidLoad中声明好,然后在Main.storyboard中进行连线。点击按钮的时候 ,我们把左边的距离改成100 。
在按钮的点击事件里加上这句。
leftContrain.constant = 100
然后我们想要一个动画的效果。
如果这么做
UIView.animateWithDuration(0.8, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.5, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { self.leftContrain.constant = 100 }, completion: nil)
你会发现然并卵 。其实这句话self.leftContrain.constant = 100
只是执行了setNeedsLayout
标记了需要重新布局,但是没有立即执行。所以我们需要在动画中调用这个方法layoutIfNeeded
所以代码应该这么写
leftContrain.constant = 100 UIView.animateWithDuration(0.8, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.5, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { self.view.layoutIfNeeded() //立即实现布局 }, completion: nil)
所以上面不管写多少约束的改变,只需要在动画里动用 一次self.view.layoutIfNeeded()
,所有的都会已动画的方式 。如果一些变化不想动画 。在动画前执行self.view.layoutIfNeeded()
文/大石头布(简书作者)
原文链接:http://www.jianshu.com/p/eb2c4bb4e3f1
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/eb2c4bb4e3f1
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- iOS中的layoutIfNeeded立即执行约束重置
- js中的立即执行函数
- js中的立即执行函数
- javascript中的立即执行函数
- JS中的立即执行函数
- js 中的立即执行函数
- JavaScript中的立即执行函数
- JavaScript中的立即执行函数表达式
- 深入解析JavaScript中的立即执行函数
- 理解javascript中的立即执行函数(function(){})()
- 理解javascript中的立即执行函数(function(){})()
- 理解javascript中的立即执行函数(function(){})()
- javascript中的立即执行函数(function(){…})()
- JavaScript中的立即执行函数(function(){...})()
- JavaScript中的立即执行匿名函数
- !立即执行!
- javascript中的自执行(立即执行)函数(function(){…})()
- LayoutIfNeeded
- Emacs使用
- Android:用Handler实现异步处理功能
- ubuntu安装php-curl与php-tidy扩展
- 手动测试和修改多线程中栈空间大小。
- Hashmap实现原理
- iOS中的layoutIfNeeded立即执行约束重置
- 在Activity中使用Thread导致的内存泄漏
- Android drawable微技巧,你所不知道的drawable的那些细节
- Spark性能优化第六季
- Tomcat 系统架构与设计模式,第 1 部分: 工作原理
- iOS自定义控件之倒计时器
- Mac 下命令行自动补全命令
- 关于二分法求单调递增子序列以及单调递减子序列的领悟
- 八大排序之希尔排序