Как убрать дубликаты тегов кнопок в iPhone? - PullRequest
0 голосов
/ 25 мая 2011

Я создал кнопки программно и установил теги кнопок.

Просмотр загружен:

Я создал один вид и добавил, что кнопки являются вложенным видом в этот вид.

-(void) viewDidLoad
{
   self.answerSubview = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 320, 230)];

   self.answerSubview.backgroundColor = [UIColor clearColor];

   [self.view addSubview:answerSubview];

   [self buttonCreation];
}

-(void) buttonCreation{ 
int x =100;

for(i = 0; i < 4; i++) {

      UIButton *answerBtn  = [UIButton buttonWithType:UIButtonTypeRoundedRect];

      [answerBtn setFrame:CGRectMake(40, x, 260, 40)];

      answerBtn.tag = ar[i];    

      [answerBtn setTitle:[answerList objectAtIndex:i] forState:UIControlStateNormal];

      [self.answerSubview addSubview:answerBtn];

      x = x+50;
}
}

И я хочу установить фоновое изображение для определенного индекса кнопки, когда время закончится,

 -(void) timerFinished
 {
         for (UIView* view in [self.answerSubview subviews]) { 

    if([view isKindOfClass:[UIButton class]]){ 

         UIButton *btn = (UIButton*)view; 

     NSLog(@"button value %d", btn.tag); 

         if(btn.tag == correctIndex)
        {
         [btn setBackgroundImage:[UIImage imageNamed:@"selected_correct_answer.png"] forState:UIControlStateNormal]; 

         }
         } 
    }

  }

Но каждый раз значения тегов добавляются в стек,Я случайно сгенерировал числа и установил их в теги кнопок, так что теперь это выглядит так: REsult:

Первый раз, Второй раз,

  0             0
  1             1
  3             3
  2             2 
                3
                1
                2
                0  

(На самом деле мой ожидаемый результат 32 0).

Так как я могу удалить предыдущие значения тега и получить правильные значения тега за раз.

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 25 мая 2011

Есть две вещи, которые вы можете рассмотреть.Поскольку на каждой итерации меняется только текст на кнопке.Вы могли бы, вероятно, использовать их снова.Настройте один раз и поместите их в ivars.На каждой итерации меняйте текст и тег кнопки.

Если это не тот маршрут, который вас интересует, вы, вероятно, можете отправить сообщение removeFromSuperview этим четырем объектам кнопки.

Однако, по моему мнению, первый метод является лучшим подходом, потому что он покончит с непрерывным циклом создания-уничтожения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...