Action to change background of button when pressed and then change back when pressed again from one UIButton

StackOverflow https://stackoverflow.com/questions/18766378

문제

I am programming a "yahtzee" like game for IOS. I need to be able to press the die(button) if I wish to keep that die and it will change to an alternate image. That works fine. I also need to be able to de-select that die in case I selected it by mistake. I cannot for the life of me get that to happen. Below are two of the many options I have tried:

Option 1:

 - (IBAction)die1Button:(UIButton *)sender
   {
        if (sender)
        {
              if (self.die1 >= 1)
              {
                   [self.die1ButtonOutlet setBackgroundImage:([self.dieImage            
                                      dieSelectedImage:self.die1]) forState:
                                                    (UIControlStateNormal)];
                   self.die1Selected = YES;
              }
              else
              {
                   self.die1Selected = NO;
              }
        }
   }

 - (IBAction)die1ButtonSelected:(UIButton *)sender
   {
        if(sender)
        {
             if (self.die1Selected == YES)
             {
                  [self.die1ButtonOutlet setBackgroundImage:([self.dieImage 
                                             dieImage:self.die1]) forState:
                                                 (UIControlStateSelected)];
                  self.die1Selected = NO;
             }
        }

   }

Option 2:

 - (IBAction)die1Button:(UIButton *)sender
   {
        if (sender)
        {
              if (self.die1 >= 1)
              {
                   [self.die1ButtonOutlet setBackgroundImage:([self.dieImage            
                                      dieSelectedImage:self.die1]) forState:
                                                    (UIControlStateNormal)];
                   self.die1Selected = YES;
              }
              else
              {
                   self.die1Selected = NO;
              }

              if (self.die1Selected == YES)
             {
                  [self.die1ButtonOutlet setBackgroundImage:([self.dieImage 
                                             dieImage:self.die1]) forState:
                                                 (UIControlStateSelected)];
                  self.die1Selected = NO;
             }
        }
   }

The first option does not work obviously, neither do. The second option will not let me select anything also for obvious reasons.

I have read probably 30 posts on here and elsewhere about UIButtons and their IBActions but cannot get this, hopefully someone can help. This is an assignment for class, but we are encouraged to seek help from any source, as long as we don't have someone write the entire app for us.

도움이 되었습니까?

해결책

I figured it out, finally, I was being stupid. Below is the code:

 - (IBAction)die1Button:(UIButton *)sender
 {
     if (sender)
     {
         if (self.die1Selected == NO)
         {
             self.die1Selected = YES;
             [self.die1ButtonOutlet setBackgroundImage:([self.dieImage
                    dieSelectedImage:self.die1]) forState:(UIControlStateNormal)];
         }else
         {

             [self.die1ButtonOutlet setBackgroundImage:([self.dieImage  
                    dieImage:self.die1]) forState:(UIControlStateNormal)];
             self.die1Selected = NO;
         }
     } 

 }

다른 팁

 - (IBAction)die1Button:(UIButton *)sender{
     if(self.die1Selected)
     {             
         [self.die1ButtonOutlet setBackgroundImage:([self.dieImage
                dieSelectedImage:self.die1]) forState:(UIControlStateNormal)];}
        self.die1Selected = NO;

     }else
     {

         [self.die1ButtonOutlet setBackgroundImage:([self.dieImage  
                dieImage:self.die1]) forState:(UIControlStateNormal)];
         self.die1Selected = YES;
     }
 } 

}

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top