3

テーブルビューに、タップ後に変更されるボタンがあります。

私の cellforrowatindexpath には、

 [cell.graphicButton addTarget:self action:@selector(changeGraphic:)forControlEvents:UIControlEventTouchUpInside];

これは changeGraphic (グラフィックを変更する) を呼び出すことになっています。呼び出しは成功しますが、changeGraphic では画像は変更されません。

- (IBAction)changeGraphic:sender
{


    buttonState++;
// button state is an int, im not using BOOl because I have more than 2 images to change from, but for this question i only included 2
    if(buttonState == 2){
        buttonState = 0;
    }
    // 1 = travel time 2 =activity time 3 = total time
    if (buttonState == 0) {



         [cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];
    }

    if (buttonState == 1) {


         [cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"activityTimeGraphicGreen.png" ] forState:UIControlStateNormal];
    }

[self.tableView beginUpdates];
[self.tableView reloadData];
[self.tableView endUpdates];

}

changeGraphic メソッド内にログを記録すると、正常に返されます。UIButton の画像を正しく更新していますか?

4

1 に答える 1

5

そのはず

[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];

それ以外の

[cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];

私の場合、画像は背景として作成されていました

于 2013-07-23T02:11:56.757 に答える