2013-12-17 5 views
12

iOS 7では、プッシュされたビューコントローラを階層の上にスライドさせる新しいプッシュアニメーションが作成されました。影が追加されiOS 7 UINavigationControllerプッシュアニメーションシャドウ

A shadow of view controller when animating

、ボトムビューコントローラの上に光のオーバーレイ:アニメーションが発生した場合でも、iOSのは明らかにトップビューコントローラの設計を変更するために2つのことを行い

A light overlay

ほとんどのアプリケーションでこれは問題ではありません。しかし、私は現在、ピクセルの完璧なデザインのアプリケーションに取り組んでおり、私は透明な背景を持つビューコントローラを使用しています。しかし、この機能は同じままで、ライトオーバーレイはView Controller上に表示されます。背景は白いグラデーションなので、このライトオーバーレイ(スクリーンショット2)は非常に見やすく、アニメーションが完了するとアニメーションなしで削除されるため、非常に目立ち、迷惑になります。

私は、カスタムアニメーションやトランジションを作成することができます承知していますが、私は疑問に思って:カスタムトランジションを作成することなく、この光オーバーレイと影

を削除(または変更)する方法はありますか?

ありがとうございました。

+0

これを解決できましたか? –

+0

重大な変更はありません。 – Legoless

+0

iOS 7のカスタムビューコントローラの移行APIを試しましたか? objc.io/issue-5/view-controller-transitions.html – rounak

答えて

1

これは最も洗練された解決策ではありませんが、人々がUIImageのアニメーションを使用して見せたいものを表示しているのがわかりました。だから、あなたは可能性:

  • スクリーンショットの着信UIViewController
  • UIImageView
  • 再び、ビットを削除animated:

  • ためNOを渡し、UIImageView
  • コールpushViewController:animated:の到着をアニメーションあなたのシナリオに最適な解決策かもしれません。

  • +0

    Thx、良いアイデア! –

    1

    [[UIImageView appearanceWhenContainedIn:NSClassFromString(@"_UIParallaxDimmingView"), nil] setAlpha:0.0f]; 
    

    このプロキシを試してみて、それがプライベートAPIを使用しているため、Appleはこれを可能にするかどうかはわかりません。アプリが送信されると更新されます。

    +0

    このソリューションは、ナビゲーションコントローラの階層に他の画像ビューがない場合にのみ機能します。 – patr1ck

    +0

    @ patr1ck UIImageViewをサブクラス化し、必要に応じてサブクラスを使用することができます。次に、あなたのサブクラスには適用されないAppleのUIImageViewに対してのみ、このプロキシを指定することができます。 – Gaston

    +1

    これは承認されましたか? – bangerang

    関連する問題