Подтвердить что ты не робот

Не может щелкнуть 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, она работает правильно. пожалуйста, помогите мне

4b9b3361

Ответ 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];