4

Web サービスの応答に従ってボタンの背景画像を変更したい。応答して未読メッセージを true にすると画像が異なり、未読メッセージがない場合は画像が異なります。応答は非常に良好ですが、ボタンの背景画像を変更できません。

これは私が使用しているスニペットです

if(unread>0){
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
}
else{
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] forState:UIControlStateNormal];
}
4

8 に答える 8

1
[YourBtn setImage:[UIImage imageNamed:@"your.png"] forState:UIControlStateNormal];

試してみてください。

バンドルにこの写真が本当にあるかどうかを確認するために、これを試してみることもできますか?

        NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
        NSString *imagePath = [[NSString alloc] initWithFormat:@"%s/yourButton.png", [bundlePath  UTF8String]];


if ([[NSFileManager defaultManager] fileExistsAtPath:imagePath]) {
    NSLog(@"image exists");
}
else{
    NSlog(@"image Does Not Exist");
      }
于 2013-07-26T10:32:10.133 に答える
1

以下のコードを試してください

if(unread>0){
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState :UIControlStateSelected];
}
else{
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] forState:UIControlStateNormal];
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] forState :UIControlStateSelected];
}
于 2013-07-26T10:37:14.270 に答える
0

UIControlStateNormal と UIControlStateSelected の背景画像を別々の行として設定します。

if(unread>0){

   [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] UIControlStateNormal];

   [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] UIControlStateSelected];
} else {

   [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] UIControlStateNormal];

   [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] UIControlStateSelected];
}
于 2013-07-26T10:39:56.617 に答える
0
UIButton *btn = [[UIButton alloc]init];
    btn.frame = CGRectMake(50, 50, 100, 50);
    [btn setTitle:@"ok" forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:@"icon.png"] forState:UIControlStateNormal];
    btn.backgroundColor=[UIColor blueColor];

これがうまくいくことを願っています....

于 2013-07-26T11:16:07.393 に答える
0

背景画像を設定したら

[badgeTitle setNeedsLayout];
于 2014-06-10T14:36:42.207 に答える