Не может щелкнуть UIButton, когда он добавлен в UIImageView
ребята, я хочу щелкнуть мой uiButton после того, как он добавлен в UIImageVIew, но он не работает.
это мой код:
UIButton *btnDetail = [[UIButton buttonWithType:UIButtonTypeDetailDisclosure]retain];
btnDetail.frame = CGRectMake(0,0,100,100);
[btnDetail addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventAllTouchEvents];
[self.imageView addSubview:btnDetail];
кнопка не может щелкнуть, когда я добавлю ее в UIImageVIew, но если я не добавлю ее в UIImageView, она работает правильно.
пожалуйста, помогите мне
Ответы
Ответ 1
Примечание.. По умолчанию для свойства UserInteraction
UIImageView
установлено значение НЕТ. Это место, где большинство из нас ошибается.
Итак, главное, чтобы проверить при добавлении какого-либо элемента управления в UIImageView
, это установить его свойство UserInteractionEnabled
в ДА.
[self.imageView setUserInteractionEnabled:YES];
Так измените свой код, как показано ниже:
UIButton *btnDetail = [[UIButton buttonWithType:UIButtonTypeDetailDisclosure]retain];
btnDetail.frame = CGRectMake(0,0,100,100);
[btnDetail addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventAllTouchEvents];
[self.imageView addSubview:btnDetail];
[self.imageView bringSubviewToFront:btnDetail];
[self.imageView setUserInteractionEnabled:YES];
HAppy Coding...
Ответ 2
UIImageView имеет userInteractionProperty
установлен по умолчанию по умолчанию, поэтому он не обрабатывает касания и не передает их в свои подзоны. Попробуйте установить значение YES:
self.imageView.userInteractionEnabled = YES;
Ответ 3
Эй, я использовал этот код. его правильная работа
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(80.0, 210.0, 100.0, 20.0);
[button addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"ShowView" forState:UIControlStateNormal];
[image2 addSubview:button];
[image2 bringSubviewToFront:button];
[image2 setUserInteractionEnabled:YES];
Ответ 4
Если у кого-то есть проблема взаимодействия с UIButton в UIImageView, выполните следующие шаги.
1 Создайте свойство UIImageView:
@property (nonatomic, strong) UIImageView *buttonImageView;
2 Затем синтезируйте его:
@synthesize buttonImageView = _buttonImageView;
3 Создайте метод реализации:
- (UIImageView *) buttonImageView {
_buttonImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
[_buttonImageView setBackgroundColor:[UIColor whiteColor]];
[_buttonImageView setUserInteractionEnabled:YES];
UIButton *addButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[addButton setTitle:@"add button" forState:UIControlStateNormal];
addButton.frame = CGRectMake(0, 0, 160, 50);
[addButton setUserInteractionEnabled:YES];
[addButton setEnabled:YES];
[addButton setAlpha:1];
[addButton addTarget:self action:@selector(addNewImage) forControlEvents:UIControlEventTouchUpInside];
return _buttonImageView;
}
4 Например, в методе viewDidLoad добавьте subview к вашему представлению:
[self.view addSubview:self.buttonImageView];