关闭

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

标签: iOSuiview控件动画
2240人阅读 评论(0) 收藏 举报
分类:

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

两个重要的注意事项:

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

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

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

            [self.view layoutIfNeeded]; // Called on parent view
        }];

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28253次
    • 积分:501
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:13篇
    • 译文:0篇
    • 评论:0条