5

不思議に思うのですが、UIBarButtonItemsを次のようにカスタマイズしました

+ (UIBarButtonItem *)createBarButtonItemWithTitle:(NSString *)t target:(id)tgt action:(SEL)a
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *buttonImage = [[UIImage imageNamed:@"blabla.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];


    CGRect buttonFrame = [button frame];
    buttonFrame.size.width = 35;
    buttonFrame.size.height = buttonImage.size.height;
    [button setFrame:buttonFrame];

    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];

    [button addTarget:tgt action:a forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

    return buttonItem ;
}

しかし、今はボタンの背景画像に陰影/光沢効果がありません...。

それを自動的に行う方法はありますか、それともプログラムで行う必要がありますか?

編集: これがキャプチャです。わかりやすくするために、単純な緑色の正方形を使用しました。 シェーディング/光沢効果はもうありません

4

1 に答える 1

0

このような方法でバー ボタンを完全にカスタマイズするには、「blabla.png」の平らな緑色の画像以外のものを提供する必要があります。

これを処理する別の方法は、画像で縁取りスタイル ボタンを作成することです。何かのようなもの:

UIBarButtonItem* barButton = [UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"blabla.png"] style:UIBarButtonItemStyleBordered target:tgt selector:a];

このUIBarButtonItemStyleBorderedスタイルは、3D の盛り上がったボタンのような外観を与えます。必要に応じて、バーに合わせて外観を着色できます。

于 2013-04-10T23:45:19.290 に答える