1

view1 にボタンがあり、それを view2 に移動したいのですが、上からのアニメーションがあります。私のview1は画面の上半分にあり、view2は画面の下半分にあります。ご覧のとおり、スーパービューが変わります。複数のアプローチを試しましたが、ボタンは左または右から表示されますが、元からは表示されません。どんな助けでも大歓迎です。

4

2 に答える 2

3

clipsToBoundsに設定して、スーパービューのコンテンツをクリップしないようにしNOます。

次に、ボタンのフレームをアニメーション化し、アニメーションが完了したら、ビュー 1 から削除してビュー 2 に追加します。

[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は のフレームを からに変換mainWindowcurrentViewます。このバグを除けば、これは完全に機能します。その問題に遭遇しない場合、または解決方法を見つけた場合は、本当に感謝しています。

その時点から行う必要があるのは、通常のアニメーションを適用することだけです。

于 2012-09-21T14:17:10.537 に答える