Мне нужно создать несколько кнопок и меток программно.По большей части они будут иметь одинаковые атрибуты (opaque, backgroundColor, textColor) за исключением текста, тега и фрейма.
При попытке ограничить объем кода, который мне нужно было набрать, яполагал, что это будет работать:
// generate generic properties for our buttons
UIButton *tempButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tempButton.opaque = true;
tempButton.backgroundColor = [UIColor whiteColor];
tempButton.titleLabel.font = [UIFont fontWithName:@"Helvitica-Bold" size:15];;
[tempButton setTitleColor:[UIColor magentaColor] forState:UIControlStateNormal];
[tempButton addTarget:self action:@selector(handleButtonTap:) forControlEvents:UIControlEventTouchUpInside];
// generate specific button1 properties, assign to ivar, and display
tempButton.frame = CGRectMake(81, 136, 159, 37);
tempButton.tag = BUTTON_1_TAG;
[tempButton setTitle:@"button 1 title" forState:UIControlStateNormal];
self.button1 = tempButton;
[self.view addSubview:self.button1];
// generate specific button2 properties, assign to ivar, and display
tempButton.frame = CGRectMake(81, 254, 159, 37);
tempButton.tag = BUTTON_2_TAG;
[tempButton setTitle:@"button 2 title" forState:UIControlStateNormal];
self.button2 = tempButton;
[self.view addSubview:self.button2];
Как большинство из вас уже знают, отображается только последняя кнопка.Я предполагаю, что это потому, что все, что я на самом деле делаю, это перезаписываю tempButton.
Есть ли решение, которое позволяет мне выполнить то, что я пытаюсь сделать здесь, без необходимости создавать отдельные переменные "temp" для каждогоelement?
Кроме того, похоже, что с моим кодом выше будут проблемы утечки памяти.Насколько я понимаю, что tempButton изначально автоматически высвобождается, но каждый раз, когда я использую его для настройки своего ивара, его снова не сохраняют?После этого мне нужно будет отправить tempVar релиз, чтобы он вернулся к 1, чтобы при срабатывании авто-релиза он действительно был освобожден?
Спасибо за вашу помощь!