0

ボタンをタップするたびにボタンの背景画像を変更したいiPhoneアプリケーションがあります。つまり、ボタンが続く場合は、ボタンをタップしたときにフォローを解除する必要があります。誰か助けてもらえますか?

4

4 に答える 4

1

ボタンをトグルボタンとして使用する場合は、flag(BOOL)変数を使用して、要件に応じて設定します。ただし、ボタンの画像を複数回設定する場合は、以下に示すように使用してください。

-(IBAction)buttonPress:(id)sender
{ 

   if([sender tag] == 1)
        {
            [yourbutton setBackgroundImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];
            btnSegment1.tag = 2;// Here i reset tag. you can set tag according your requirements so you can use button next for next click as you want

        }
        else if([sender tag] == 2)
        {
            [yourbutton setBackgroundImage:[UIImage imageNamed:@"3.png"] forState:UIControlStateNormal];
             yourbutton.tag = 3;// Here i reset tag. you can set tag according your requirements so you can use button next for next click as you want

        }
    // and so on.....

}
于 2012-05-10T12:31:40.680 に答える
1
@interface XXX: UIViewController // whatever
{
    BOOL btnImageState;
}

// etc.

@implementation XXX

- (id)init
{
    if ((self = [super init]))
    {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btn setImage:[UIImage imageNamed:@"follow.png"] forState:UIControlStateNormal];
        [btn setFrame:CGRectMake(x, y, w, h)];
        [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btn];
    }
    return self;
}

- (void)click:(UIButton *)btn
{
    if (btnImageState)
        [btn setImage:[UIImage imageNamed:@"follow.png"] forState:UIControlStateNormal];
    else
        [btn setImage:[UIImage imageNamed:@"unfollow.png"] forState:UIControlStateNormal];

    btnImageState = !btnImageState;
}

@end
于 2012-05-10T12:33:14.640 に答える
0

ここで私はそれをプログラムで行いました。これがお役に立てば幸いです。

-(IBAction) pause:(id)sender
{
UIButton  *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self 
           action:@selector(aMethod)
 forControlEvents:UIControlEventTouchDown];
UIImage *buttonImage = [UIImage imageNamed:@"buttonImage.png"];
[button1 setBackgroundImage:buttonImage forState:UIControlStateNormal];
button1.frame = CGRectMake(208, 380.0, 60.0, 60.0);
[self.view addSubview:button1];
}
- (IBAction) aMethod
{
button1.hidden=YES;

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self 
            action:@selector(pause:)
  forControlEvents:UIControlEventTouchDown];
UIImage *buttonImage = [UIImage imageNamed:@"Button2Image.png"];
[button1 setBackgroundImage:buttonImage forState:UIControlStateNormal];
//[button1 setTitle:nil forState:UIControlStateNormal];
button1.frame = CGRectMake(208, 380.0, 60.0, 60.0);
[self.view addSubview:button1];
}
于 2012-05-10T12:30:01.197 に答える
0
 static int tapCount = 0;
- (IBAction) buttonTapped :(id)sender {
    tapCount++;

    NSString *imageName = [NSString stringWithFormat:@"image%d.png",tapCount];
    [yourButton setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
}

どのような名前の画像をどのようにロードするか、および画像の数によって異なります。したがって、カスタマイズすることができます。

于 2012-05-10T12:32:18.603 に答える