1

我在 view1 上有一个按钮,我想将其移动到 view2 ,但顶部有动画。我的 view1 位于屏幕的上半部分,而 view2 位于屏幕的下半部分。如您所见,superview 会发生变化。我尝试了多种方法,但按钮只是从左侧或右侧出现,而不是从其原点出现。任何帮助表示赞赏。

4

2 回答 2

3

clipsToBounds通过设置为使超级视图不剪辑其内容NO

然后为按钮的框架设置动画,动画完成后,将其从 view1 中移除并将其添加到 view2。

[UIView animateWithDuration:0.2f
    animations:^{
        button.frame = newFrame;
    }
    completion:^(BOOL finished){
        CGRect rect = [view1 convertRect:button.frame toView:view2];
        [button removeFromSuperview];
        [button setFrame:rect];
        [view2 addSubView:button];
    }];
于 2012-09-21T14:19:15.213 回答
2

我已经使用以下代码完成了这个结果:

CGRect tabFrame = tab.frame;
CGRect viewFrame = [mainWindow convertRect:tabFrame toView:currentView];
tab.frame = viewFrame;
[tab removeFromSuperview];
[currentView addSubview:tab];

此代码将tab' 帧从mainWindow转换为currentView. 除了这个错误之外,这非常有效。如果您没有遇到该问题,或者找到解决方法,我将不胜感激。

从那时起,您需要做的就是应用您的正常动画。

于 2012-09-21T14:17:10.537 回答