ナビゲーション バーのサブクラスを作成しました。そこで背景画像を設定し、クリッピングを無効にしたいと思います。これは、画像に影とナビゲーション バーよりも高い矢印があるためです。
iOS 6&5 では、Xcode の Interface Builder で Clip Subviews のチェックを外すと完全に機能します。残念ながら、iOS7 では背景画像が常に切り取られます...次の行も追加しようとしました。
- (void) awakeFromNib
{
// Initialization code
UIImage *image = [UIImage imageNamed:@"tt_navigation_bar.png"];
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) image = [UIImage imageNamed:@"tt_navigation_bar-ios7.png"];
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue-Bold" size:21.0], UITextAttributeFont, [UIColor colorWithRed:255.0/255.0 green:109.0/255.0 blue:36.0/255.0 alpha:1], UITextAttributeTextColor, [UIColor clearColor], UITextAttributeTextShadowColor, nil];
[[UINavigationBar appearance] setTitleTextAttributes:textTitleOptions];
for (UIView *v in [self subviews]) {
NSLog(@"v: %@", v);
v.layer.masksToBounds = NO;
}
self.layer.masksToBounds = NO;
}