3

ページングが有効になっている scrollView があります。次のページにドラッグし始めると、navigationBar にテキストをスムーズにフェードアウトさせたいと思います。私はデリゲートメソッドでそれを行います:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

ドラッグの割合を次のように計算します。

CGFloat percentDragging = 1 - fmodf(scrollView.contentOffset.x,self.view.frame.size.width)/self.view.frame.size.width;

そして、これは正しい値を返します。

だから:私は設定しようとします:

self.navigationController.navigationBar.titleView.alpha = percentDragging

しかし、うまくいきませんでした。

私は次の方法で問題を解決しました:

((UIView*)[[self.navigationController.navigationBar subviews] objectAtIndex:1]).alpha = percentDragging;

しかし、これは醜く、大雑把で、危険な解決策です。より良い方法はありますか?

4

1 に答える 1

1

のアルファを設定しtitleViewても、既定のナビゲーション バーのタイトル ラベルにアクセスできないため、機能しませんでした。設定した場合にのみ値が表示されます。ここでしなければならないことは、font/shadow/etc の UILabel を含むカスタム titleView を自分で設定することだと思います。標準スタイルに一致するように設定し、トランジションに合わせてそのラベルをフェードインおよびフェードアウトします。

于 2013-07-08T16:51:21.483 に答える