0

免責事項:私はこのシナリオのデザイナーにすぎず、iOS開発について正確に知っているので、これを尋ねるのは間違っている可能性があります。

免責事項:しかし、私は熟練したPHPおよびJSプログラマーであるため、開発の芸術/感覚が完全に失われることはありません。

今、私たちが再現しようとしているデザインは、ヘッダーバーを必要としています。現在、それはUINavigationBarです。ただし、その要素では明らかに十分なカスタマイズができません。

  • バーの高さは110ピクセル(Retina)である必要があります。
  • 光沢、境界線、または目に見える背景があってはなりません。画面全体が同じ静的な動かない背景(画像)を持つ必要があります。
  • バーの下のコンテンツがスクロールされた場合、バーにはドロップシャドウ(これも画像であり、内部のドロップシャドウ効果では不十分です)のみが含まれている必要があります。つまり、ドロップシャドウ画像は「一部のコンテンツがここにある」ことを示しています。Galaxyの時代から正しく覚えていれば、そのような動作はAndroidユーザーにはなじみがあります。

ここにデザインモックアップの一部を添付しました。

バーの動作を示すモックアップを設計する

この効果を達成するための抵抗が最も少ない経路は何ですか(可能であればネイティブのUINavigationBarを使用しますが、そうでない場合は汗をかきません)?

4

2 に答える 2

1

これを実現する最も簡単な方法は、コンテキスト内に影付きのナビゲーションバー画像を描画するメソッドを継承UINavigationBarして実装するクラスを追加することです。drawRect

@interface MynavBar:UINavigationBar
@end

@implementation MynavBar

- (void)drawRect:(CGRect)rect
{
 UIImage *navBarImg=[UIImage imageNamed:@"navBar.png"];
[navBarImg drawRect:rect];
[super drawRect:rect];
}
@end

このクラスを、IBのナビゲーションバーのクラス名として使用します。

于 2013-03-14T18:29:09.163 に答える
0

さて、あなたの場合、使用することはできないと思いますUINavigationBar。デフォルトnavigationBarの高さは読み取り専用であるため、プログラムで変更することはできません。かつて、ナビゲーションバーを大きくしようとしましたが、必要に応じてデフォルトの戻るボタンの位置を制御できないため、実際には機能しません。ナビゲーションバーが必要ない場合は、背景画像付きのカスタムビューを使用する必要があると思います。そうすれば、フレームを好きなように設定できます。

于 2013-03-14T18:55:57.017 に答える