0

UINavigationBar の色を任意の単色に変更したいと考えています。IB では、Background および Tint プロパティに単色を追加しました。ただし、バーのすぐ下に影があります。UINavigationBar をサブクラス化せずに削除するにはどうすればよいですか? そうでない場合、それをサブクラス化する方法は?

4

2 に答える 2

0

UINavigationBar を次のようにサブクラス化することになりました。

#import <UIKit/UIKit.h>

@interface MyNavigationBar : UINavigationBar <UINavigationBarDelegate> {

}

@end

そして、.Mファイル内でこれを上書きしました

- (void)drawRect:(CGRect)rect {
 UIColor * color = [UIColor colorWithRed:255/255.0f green:255/255.0f blue:255/255.0f alpha:1.0f];
 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
 CGContextFillRect(context, rect);
}  

注: 何らかの理由で [UIColor whiteColor] を使用できませんでした。デフォルトで黒に設定されていたため、代わりに colorWithRed:green:blue: を使用することになりました。

それは私にとってはうまくいきました。

于 2013-02-05T19:01:05.690 に答える
0

UINavigationBar の shadowImage を [[UIImage alloc] init] に設定して、影を削除できます。ただし、これは iOS 5.0 以降でのみ機能します。

于 2013-02-06T06:25:16.687 に答える