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