如何使用ViewWillLayoutSubview为UIView框架设置动画

时间:2018-02-04 08:40:51

标签: ios objective-c animation uiview

我已经以编程方式创建了两个UIViews,并在ViewWillLayoutSubview函数中设置了它的框架,现在我想创建一个交换动画,以便每个视图在点击时用动画交换彼此的位置。为了获得这个动画,我必须在动画中交换它的框架,但同时调用ViewWillLayoutSubview,它将框架设置为初始位置。

如何使用ViewWillLayoutSubview将我的UIViews与动画交换?

我没有使用任何类型的约束或xib或故事板。整个屏幕以编程方式设计。

提前致谢。

1 个答案:

答案 0 :(得分:1)

-(void)viewWillLayoutSubviews
{
    if(Once)
   {
       // create 2 views here

      once = NO;
   }

}

将此代码放入按钮单击

CGRect view2Frame = self.view2.frame;

[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveLinear  animations:^{
    //code with animation


      self.view2.frame = self.view1.frame;

      self.view1.frame = view2Frame;


} completion:^(BOOL finished) {
    //code for completion
}];