Я хочу создать 3-4 кнопки программно, но с пользовательским классом и определенной парой значений/ключей, но я изо всех сил пытаюсь это сделать. Кнопка, которую я хочу создать, должна иметь пользовательский класс с именем «AnswerButton». Добавление UIButton.tag не должно быть проблемой, поэтому я могу точно указать, какую кнопку нажали, не так ли?Создание UIButton программно с пользовательским классом
Вот код, я использую для создания кнопок:
NSMutableArray *catNames;
catNames = [NSMutableArray arrayWithCapacity:5];
[catNames addObject:@"Boote"];
[catNames addObject:@"Gewässer"];
[catNames addObject:@"Technik"];
[catNames addObject:@"Krims Krams"];
[self dynamiclyCreateButtons:4 :catNames];
- (void)dynamiclyCreateButtons:(int)howMany :(NSMutableArray*)catNames {
float standard_btnHeight = 30.0;
float standard_btnWidth = 200.0;
CGFloat p = 120;
for(int i = 0; i != howMany; i++){
UIButton *catBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[catBtn setFrame:CGRectMake(0.0f, 0.0f, standard_btnWidth, standard_btnHeight)];
[catBtn setCenter:CGPointMake(100.0f, p)];
[catBtn setTitle:[catNames objectAtIndex:i] forState:UIControlStateNormal];
[catBtn addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:catBtn];
p=p+40;
catBtn = nil;
}
}
// Редактировать Что я имею в виду пользовательский класс: https://i.stack.imgur.com/8r2oz.png
// Edit 2 (Правильный ответ, так как я не могу написать ответ сам, чтобы указать на это лучше)
Просто здесь, чтобы указать на это и найти ответ проще: ответьте Грегом правильно. Вы не должны создавать кнопки с классом по умолчанию, но с пользовательского класса вместо:
Заменить
UIButton *catBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
с
AnswerButton *catBtn = [AnswerButton buttonWithType:UIButtonTypeRoundedRect];
Не забудьте импортировать класс!
Что вы имеете в виду пользовательский класс? Вы хотите создать все свои кнопки с помощью класса «AnswerButton» или вы хотите создать каждую кнопку с другим классом? – Greg
Вы ищете класс с именем AnswerButton, полученный из UIButton? – HRM
почему catBtn = nil; – Retro