4

画像付きのカスタムボタンを使用しました。通常 では、 ボタンをタップすると、ボタンの色が変わります。

そのカスタムボタンをタップすると、カスタムボタンから画像を変更したい。

どうすれば変更できますか?

ありがとう。

4

6 に答える 6

11

これが標準の UIButton であると仮定すると、ボタンを初期化するときに次のことができます。

[btnObj setImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];

または背景画像の場合:

[btnObj setBackgroundImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];
于 2012-05-28T02:30:45.850 に答える
4

最初に、ビュー コントローラーのメンバー変数としてボタンを作成します。と呼びましょうUIButton* myButton

次に、そのようにボタンを初期化し、その画像を最初に表示したい画像に設定します。

myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[myButton setImage:[UIImage imageNamed:@"OriginalImage"] forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(onClickMyButton) forControlEvents:UIControlEventTouchUpInside];

3 行目では、ボタンがクリックされたときに "onClickMyButton" 関数が呼び出されるようにしています。次に、画像を「NewImage」に変更する次の関数を記述します。

-(void) onClickMyButton
{
   [myButton setImage:[UIImage imageNamed:@"NewImage"] forState:UIControlStateNormal];
}

そして出来上がり!問題が解決しました :)

于 2012-05-28T02:35:13.653 に答える
1

以下の 2 つのメソッドを使用できます – setBackgroundImage:forState: – setImage:forState: UIButtonを確認します

于 2012-05-28T02:31:09.493 に答える
0

まず、ストーリーボードで「btYesAction」と「btNoAction」を使用してボタンのオブジェクトを作成します。

viewcontroller.m に移動し、以下のコードを貼り付けます

   <pre>
(IBAction)btYesAction:(id)sender {
UIButton *button = (UIButton *)sender;
button.selected = !button.selected;

[button setImage:[UIImage imageNamed:@"NO1.png"]
        forState:UIControlStateSelected];

于 2016-08-09T11:51:37.423 に答える
0

私はこのようにしました:

どこか、私の場合 ViewDidLoad 。. .

  if(![[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]){

        [btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-up" backgroundColor:[UIColor clearColor] iconColor:clrPureBlueTint andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
    }else{
        [btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-off" backgroundColor:[UIColor clearColor] iconColor:[UIColor whiteColor] andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
    }

次にクリックイベントで

- (void)btnVolumeClicked : (UIButton *)sender{

if ([[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]) {

    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"volume_control"];
    [[NSUserDefaults standardUserDefaults] synchronize];

}else{

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"volume_control"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

[self selectedState];}

SelectedState メソッドで:

-(void) selectedState{

if(![[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]){

    [btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-up" backgroundColor:[UIColor clearColor] iconColor:clrPureBlueTint andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];

}else{
    [btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-off" backgroundColor:[UIColor clearColor] iconColor:[UIColor whiteColor] andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
}}

私は Font Awesome を使用していますが、このようにボタン画像を設定するだけです

[btnVolume setImage:[UIImage imageNamed:@"NO1.png"]
    forState:UIControlStateSelected];
于 2016-11-29T07:27:18.073 に答える