1

無料のアイコン DB からサムズアップ アイコンをダウンロードしました。そのサイズはボタンには大きすぎ、背景は白でした。アイコンのサイズを変更し、背景を削除して pixelmator で開くことにしました。プレビューで開くと見栄えがしますが、xcodeでボタンの画像に設定すると白い円として表示されます。

これが編集後のアイコン (30x30 png) ここに画像の説明を入力 で、これがボタン上での外観ですここに画像の説明を入力

これを修正するにはどうすればよいですか?

編集/更新: @yunas コードを試してみましたが、ツールバーではなく ナビゲーション バーで動作します(ボタンも表示されませんでした)。

このコードを試す:

UIImage* image = [UIImage imageNamed:@"imageName"];
UIBarButtonItem *likeBtn = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(action_clicked:)];
NSArray* toolbarItems = [NSArray arrayWithObjects:likeBtn,nil];
self.toolbarItems = toolbarItems;
self.navigationController.toolbarHidden = NO;

再び白い絵のボタンになりました

だから私は疑問に思っていました: ツールバーに色付きのボタンを配置することさえ可能ですか? たぶん私は不可能なことを試みています...

edit/upadte II - 解決策: UIBarButtonItem 内に UIButton をラップする

@interface StatusUIBarButtonItem : UIBarButtonItem
- (id) initWithStatus: (enum StatusEnum)p_statusEnum;
@end

@implementation StatusUIBarButtonItem
- (instancetype)initWithStatus:(enum StatusEnum)p_statusEnum
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[self getStatusImage] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(status_Clicked:) forControlEvents:UIControlEventTouchUpInside];
    [button setFrame:CGRectMake(0, 0, 20, 20)];

    self = [super initWithCustomView:button];
    if (self) 
    {
        self.statusButton = button;
    }
    return self;
}

@end

次にViewControllerクラスで:

-(void) viewDidLoad
{  
    StatusUIBarButtonItem* stausBtn = [[StatusUIBarButtonItem alloc]  initWithStatus:self.status];
    NSArray* toolbarItems = [NSArray arrayWithObjects: stausBtn, nil];
    self.toolbarItems = toolbarItems;
    self.navigationController.toolbarHidden = NO;
}

これが、私のようにツールバーに色付きの画像が必要な人に役立つことを願っています

4

1 に答える 1