0

ナビゲーション バーとボタンのカスタム イメージを実装しようとしています。これを使用して、ナビの背景の正しい設定を取得することができました

これは、以下のコードで起こることです

        - (void)customAppearance
{  
    UIImage* NavBG = [UIImage imageNamed:@"header.png"];
    [[UINavigationBar appearance] setBackgroundImage:NavBG forBarMetrics:UIBarMetricsDefault];
}

しかし、戻るボタンや他のボタンに似たようなことをしようとすると、すべてが混ざり合ってしまいます(戻るボタンの言葉は見えますが、戻るボタンの輪郭はありません)

ここに私が持っているものがあります 戻るボタン

UIImage *backButtonBG = [[UIImage imageNamed:@"header.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonBG forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

そして、私はそれを次のように見せたい:目標は何ですか

4

2 に答える 2

1

デフォルトでは、これらのバーボタンアイテムは常にナビゲーションバーの色を使用するため、ナビゲーションバーにも色合いを付けるのが最も簡単な方法だと思います。

[[UINavigationBar appearance] setTintColor:[UIColor redColor]];

または、RGB値を使用してより正確な色を使用できます

[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:val green:val blue:val alpha:1]];
于 2013-03-27T15:33:53.613 に答える
0

カスタム イメージを使用して色付きのボタンを作成しました (最後のコードを参照)。次に、leftBarButtonItemこのボタンに を設定します。

+ (UIBarButtonItem *)createBarButtonItemWithImage:(UIImage *)normalImage highlightedImage:(UIImage *)highlightedImage
{
    UIBarButtonItem *barButtonItemToReturn;
    if (normalImage == nil && highlightedImage == nil)
    {
        return barButtonItemToReturn;
    }
    else if (normalImage != nil)
    {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage:normalImage forState:UIControlStateNormal];

        if (highlightedImage != nil)
        {
            [button setImage:highlightedImage forState:UIControlStateHighlighted];
            [button setFrame:CGRectMake(0, 0, normalImage.size.width, normalImage.size.height)];
        }

        barButtonItemToReturn = [[UIBarButtonItem alloc] initWithCustomView:button];
    }
    return barButtonItemToReturn;
}

ターゲット/アクションを追加する場合は、次の方法で追加する必要があります。

 [((UIButton*)barButtonItem.customView) addTarget:self selector:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];

サイズ変更可能な画像などを使用することもできます

于 2013-03-27T15:05:22.460 に答える