1

Apple が iPod アプリで行っているように、ナビゲーション バーで UIBarButtonItem を反転させて、トラック リストとアルバム アートを切り替えようとしています。

インターフェイス ビルダーのナビゲーション バーにボタンをドラッグしUIBarButtonItemましたcustomView

次のメソッドを使用してボタンの customView を反転していますが、最終的にはナビゲーション バー全体が反転します。

奇妙なエミュレーターの不具合だと思っていましたが、デバイスでも発生しています。誰かがこれに遭遇したか、私が間違っている可能性がある場所を見ましたか?

[UIView transitionFromView:self.mapToggleBarButton.customView
                    toView:self.mapToggleBarButton.customView
                  duration:0.5
                   options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {

}];
4

2 に答える 2

0

UIView.transitionFromViewこれは正確にandの予期される動作であることが判明しましたUIView.transitionWithView...

アニメーションは、スワップするオブジェクトのスーパービューに適用されます。ボタンを囲むプレーンな UIView だけで、フリップは期待どおりに動作するはずです。

私はそれについてここに少し書いています: http://mathewsanders.com/animations-in-swift-part-two/

于 2014-08-20T02:14:43.143 に答える
0

あなたのコードでは、 はfromViewと同じように見えますtoView。そのため、アニメーションはありません。例えば:


    UIBarButtonItem *refresh = self.navigationItem.rightBarButtonItem;
    UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"On.png"]];
    [UIView transitionFromView:((UIButton*)refresh.customView).imageView toView:imgView duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
       //
        UIButton *btn = ((UIButton*)refresh.customView);
        [btn setImage:[UIImage imageNamed:@"On.png"] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(tap:) forControlEvents:UIControlEventTouchUpInside];
    }];

アニメーションを反転した後はUIButton、 などimageのをリセットする必要がありますaction

于 2014-08-20T02:53:56.763 に答える