Как установить фоновое изображение для определенного индекса кнопки в iPhone? - PullRequest
1 голос
/ 24 мая 2011

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

Вот мой образец фрагмента,

В файле интерфейса

 UIButton *answerBtn;
 @property (nonatomic, retain) UIButton *answerBtn;


 for(int i = 0; i < [myArray count]; i++) {

  answerBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

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

 answerBtn.tag = i; 

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

 [self.view addSubview: answerBtn];

}

В моем случае я хочу установить фон кнопки разными способами.

-(void) custom Method
{
   if(indexValue == correctIndex) // Values are 2
   {
     // so i want to set the background image for the second button

      [answerBtn setBackgroundImage:[UIImage imageNamed:@"selected_correct_answer.png"] forState:UIControlStateNormal]; 

   }
}

Но он не устанавливает соответствующий индекс, так как я могу это сделать? ! [введите описание изображения здесь] [1]

Ответы [ 3 ]

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

Попробуйте это

for(int i = 0 ; i < [myArray count] ; i++ )
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setTag:i];
    [btn setFrame:CGRectMake(30, x, 260, 40)];
    [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

- (IBAction) btnClicked::(id)sender
{
  UIButton *btnTapped=(UIButton *)sender;

for(UIView *btn in  self.view.subviews)
{
    if([btn isKindOfClass:[UIButton class]])
    {   
        UIButton *btnComp = (UIButton*)btn; 

        if(btnComp.tag == btnTapped.tag)
            [btnComp setBackgroundImage:[UIImage imageNamed:@"selected_correct_answer.png" forState:UIControlStateNormal];
        else 
             [btnComp setBackgroundImage:[UIImage imageNamed:@"default_image.png" forState:UIControlStateNormal];


    }


}

}

1 голос
/ 24 мая 2011

Используйте - (void) custom: (id) отправитель вместо - (void) custom .

В отправителе вы можете иметь индекс кнопки.

0 голосов
/ 24 мая 2011
UIButton *answerBtn = (UIButton *)[self objectWihTag:1]
...