私はスレッドhereと同じ問題があります。テキストを白くすることでステータスバーを表示させることができますが、これは私の目標ではありません。私はまた、すべてのナビゲーションバーのように、バーの上に色を付けることを意味します。私はviewSubviewsの下で、ビューで必要なシェイプを追加することでこれを達成することができましたが、この方法でUINavigationItemを操作したり表示したりすることはできません。コード:UINavigationBarサブクラスのdrawRectはステータスバーを黒にします
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor yellowColor] setFill];
UIRectFill(rect);
これが結果です:
これはのdrawRectで達成することができる靱皮です:
そして、あなたはそれを行う場合に発生しますlayoutSubviewsの下:
ご覧のとおり、バックテキスト、矢印はすべて失われています。だから私は本当にdrawRectを動作させる方法を探しています!あなたの助けを前もってありがとう!
あなたはそれがあなたの3番目の写真のように見えるようにしたが、ボタンは表示されませんでしたか? – Tj3n
@ Tj3nはい、それは私が欲しい色だけではありません。そうでなければ、色合いの色のプロパティを使用します。このバーは、適切なスケッチ(スターと複数の色が入っている)を意図しています。これは、viewがすべての表示要素(ボタン、メイン画面のタイトル、すべて)をブロックしているため、layoutSubviewはdrawRectの上で動作するためです。 – isklikas
実際には 'navigationBar'の背景、影、色を隠して色をクリアし、その目に見えないナビゲータバーの下にカスタムビューを追加することができます。かなり簡単です – Tj3n