您的位置:首页 > 移动开发 > IOS开发

iOS 开发中问题 ——使用xib拖拽控件操作其约束并添加动画没有效果的问题

2015-07-10 09:47 996 查看

在iOS开发过程中会遇到使用xib拖拽控件,为了适配多种屏幕而向控件添加约束的过程,但是控件一旦添加了约束之后,操作其frame就变得并不如意了,这样可以通过拖拽添加的约束线到类文件中成为属性,或者成员变量。之后对约束进行操作,就可以解决不能操作其位置的问题,但是要想实现动画效果,仅仅使用[UIView animateWithDuration:x animations:^(block)];运行之后,发现并没有动画效果,这个问题需要注意:

两个重要的注意事项:
您需要调用 
layoutIfNeeded
 动画块内。苹果公司其实建议你称之为一次之前要确保所有挂起的布局操作已完成的动画块
您需要调用它专门在父视图上 (例如 
self.view
 ),不能在子视图具有附加到它的约束。这样做将更新所有约束视图,包括动画可能会认为,你改变了的约束约束其他视图 (如视图
B 附加到底部的视图 A 和您刚刚更改视图的顶部偏移量和你想要使用它进行动画处理的视图 B)


 


[self.view layoutIfNeeded]
[UIView animateWithDuration:5
animations:^{

//进行控件的约束属性操作;

[self.view layoutIfNeeded]; // Called on parent view
}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS uiview 控件 动画