Как программно создать UIButton в iOS 14 в Objective-C?
Я пытаюсь программно создать UIButton в iOS 14 (бета 3) в объекте C. Это то, что я пробовал, но обработчик UIAction никогда не вызывается, когда я нажимаю кнопку:
UIAction *tapAction = [UIAction actionWithHandler:^(UIAction* action){
NSLog(@"Never gets here");
}];
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100) primaryAction:tapAction];
Любые идеи?
2 ответа
Я была такая же проблема. Мне это кажется ошибкой. Попробуйте добавить:
self.contentView.isUserInteractionEnabled = true
в init(style:reuseIdentifier:), если вы используете настраиваемую ячейку tableview. См. https://developer.apple.com/forums/thread/661508?page=1#636261022 и отличный ответ @OOPer.
Я написал тестовое приложение, которое просто отображает кнопку, и оно работает, поэтому проблема должна быть в другом в моем основном приложении. Спасибо всем.
Вот как я обычно создаю кнопку в Objective-C:
- (void)createButton {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 50, 100);
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)buttonClicked:(UIButton *)sender {
// Do your logic here
}
Вы можете прочитать больше здесь: https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget