#iphone #uibutton
#iPhone #uibutton
Вопрос:
Я создал кнопки программно и установил теги кнопок.
Просмотр загрузился:
Я создал одно представление и добавил в это представление кнопки, являющиеся вспомогательным представлением.
-(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];
}
}
}
}
Но каждый раз, когда значения тегов добавляются в стек, я произвольно генерирую числа и устанавливаю их в теги кнопок, так что теперь получается что-то вроде:
Результат:
Первый раз, второй раз,
0 0
1 1
3 3
2 2
3
1
2
0
(На самом деле мой ожидаемый результат равен 3 1 2 0).
Итак, как я мог бы удалить предыдущие значения тегов и получить правильные значения тегов за раз.
Пожалуйста, помогите мне.
Ответ №1:
Есть две вещи, которые вы можете рассмотреть. Поскольку единственное, что меняется на каждой итерации, — это текст на кнопке. Вероятно, вы могли бы использовать их повторно. Настройте один раз и поместите их в ivars. На каждой итерации меняйте текст и тег кнопки.
Если это не тот маршрут, который вас интересует, вы, вероятно, можете отправить removeFromSuperview
сообщение этим четырем объектам button.
Однако, на мой взгляд, первый метод является лучшим подходом, потому что он устранит непрерывный цикл создания — уничтожения.