4

XCode で UIToolbar のカスタム ボタン (および UIToolbar のカスタム背景色) を作成したいと考えています。

これまでのところ、私は次のようにしてきました: UIButton を作成し、それに画像を設定してから UIToolbar にドラッグします。この後UIBarButtonItemになりますが、それでも画像があるので大丈夫です。

問題は、何らかの理由でボタンの画像が元の画像よりも暗くなったことです (ツールバーの背景がボタンの背景とまったく同じであるため、それを見ることができます)が、ボタンを押すと、その画像が元の画像になることがわかります-のように、1 秒後に暗いものに戻ります。

私はこの質問で言ったようにやろうとしました: UIButton の画像は元の画像よりも暗く、XCode で強調表示された画像を設定しますが、この後、「元の画像への変更」はまったく停止しました。

それで、どうすればこれを解決できますか?XCodeでこれを行う方法があれば、このようなGUIをコードに取り入れたくありません...どんな助けもいただければ幸いです。

編集:

それは何が起こっているかのスクリーンショットです:

ツールバーとバー項目のスクリーンショット

ツールバーの背景とボタンの画像を組み合わせると、次のようになります。

ここに画像の説明を入力

今、私は次のようなコードでそれを行いました:

@implementation UIBarButtonItem (CustomView)
+ (UIBarButtonItem*) barItemWithImage:(UIImage *)image target:(id)target action:(SEL)action
{    
    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
    [button setImage:image forState:UIControlStateNormal];
    [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem* item = [[self alloc] initWithCustomView:button];
    return item;
}
@end

そして呼び出しコード:

UIBarButtonItem *item =[UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"settings"] target:nil action:nil];
[self.bottomBar setItems:@[item]];

ツールバーの背景には、次のコードを使用します。

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbar_background"]
                        forToolbarPosition:UIToolbarPositionAny
                                barMetrics:UIBarMetricsDefault];

問題は同じままです...

編集2:

うわー、実際には UIToolbar がオリジナルよりも軽いようです...

編集3:

良い。新しいプロジェクトを作成し、XCode ストーリーボード ウェイ (UIButton を使用) をテストしました。問題なく動作します...それは私にとって謎であり、ここで完全に失われました。これの考えられる理由について、ここでいくつかの深刻な説明が必要です: 私の現在のプロジェクトは巨大で、ここにすべてのコードを投稿することはできません...

4

1 に答える 1

0

さて、誰も答えなかったので、私は新しいプロジェクトを作成し、問題はなくなったとだけ言います。

しかし、それはもう一度起こりました、そして私は完全に理由を知りません。私は本当に怠惰で悪いことをし、いくつかの画像エディタでその不運なボタンの画像の明るさを変更しました= D

于 2013-01-10T23:38:41.987 に答える