Сокрытие кнопок / изображений ярлык?

Есть ли ярлык для этого кода?

-(IBAction)reset{
    button1.hidden=NO;
    button2.hidden=NO;
    button3.hidden=NO;
    button4.hidden=NO;
    button5.hidden=NO;
    button6.hidden=NO;
    button7.hidden=NO;
    button8.hidden=NO;
    button9.hidden=NO;
    button10.hidden=NO;
    button11.hidden=NO;
    button12.hidden=NO;
    button13.hidden=NO;
    button14.hidden=NO;
    button15.hidden=NO;
    button16.hidden=NO;
    button17.hidden=NO;
    button18.hidden=NO;
    button19.hidden=NO;
    button20.hidden=NO;
    button21.hidden=NO;
    button22.hidden=NO;
    button23.hidden=NO;
    button24.hidden=NO;
    button25.hidden=NO;
    button26.hidden=NO;
    button27.hidden=NO;
    button28.hidden=NO;
    button29.hidden=NO;
    button30.hidden=NO;
    button31.hidden=NO;
    button32.hidden=NO;
    button33.hidden=NO;
    button34.hidden=NO;
    button35.hidden=NO;
}

2 ответа

Решение

Определенно должны быть способы для этого:) Это действительно зависит от того, как вы создаете и храните свои кнопки. Вы можете хранить их в массиве и обрабатывать их в цикле:

for (UIButton* button in buttonsArray)
   button.hidden = NO;

Вы также можете назначить уникальный tag свойство UIButton при их создании (это свойство определяется в UIView и доступно во всех его подклассах). Таким образом, вам не нужно отдельное хранилище для кнопок, и вы также можете скрыть их в цикле:

for (int tag = min_tag_value; tag < max_tag_value;++tag)
    // Assume that self.view is a view that contains your buttons
    [self.view viewWithTag:tag].hidden = NO; 

Вы также можете использовать Key Value Coding

Я думаю, что это будет что-то вроде этого:

for (int i = 1; i <=35; i++)
{
    [self setValue:NO forKey:@"[NSString stringWithFormat:@"button%d", i]];
}
Другие вопросы по тегам