2

私はUIToolbariOSでを使用しており、右からスライドして新しいボタンを「到着」させようとしています。バー上のボタンの「位置」に直接アクセスする方法はありますか? 現在、目的の効果に近づいている面倒な回避策がありますが、Core Animation を使用してそれらを移動する方法があることを望んでいたので、「EaseInEaseOut」タイプのタイミング関数を実装できました。何か案は?

- (void) testPart1 {
    [NSTimer scheduledTimerWithTimeInterval:(0) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:500] repeats:NO];
}

- (void) testPart2:(NSTimer*)sender {
    int countdown = [sender.userInfo integerValue];
    theSpace.width = 10+(int)countdown;
    itemTestButton.width = 49;
    itemTestButton.width = 50;
    countdown -= 5;
    if(countdown>0)
    [NSTimer scheduledTimerWithTimeInterval:(0.004) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:countdown] repeats:NO];
}

ここでの前提は、 を使用しNSTimerて Fixed Space Bar Button アイテムの幅を変更し、ゼロまでカウントダウンすることでした。実際のボタンの幅を変更して機能させる必要があることがわかりました。そうしないと、「アニメーション」が発生しません。面倒です、誰かがもっときれいな方法を持っているに違いありません。

4

1 に答える 1

1

UIViewバーボタンとまったく同じようにレンダリングされる のサブビューとしてプレーンを追加しUIToolbar(既存のボタンを呼び出すことでこれを取得できrenderInContext:ます)、そのビューを適切な位置にアニメーション化することをお勧めします。そのアニメーションの完了ブロックで、実際のボタンとremoveFromSuperviewアニメーション ビューを設定すると、ユーザーには区別がつかないように見えます。

于 2013-04-16T00:31:52.330 に答える