1

ナビゲーション バーのサブクラスを作成しました。そこで背景画像を設定し、クリッピングを無効にしたいと思います。これは、画像に影とナビゲーション バーよりも高い矢印があるためです。

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;
}
4

1 に答える 1