将UIButton添加到UIImageView时无法单击UIButton

Ima*_*f W 20 iphone uibutton uiimageview

伙计们,我想在添加到UIImageVIew之后点击我的uiButton,但它不起作用.这是我的代码:

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];
Run Code Online (Sandbox Code Playgroud)

当我将它添加到UIImageVIew时按钮无法单击,但如果我不将它添加到UIImageView,它可以正常工作.请有人帮帮我

Sur*_*rma 51

注意:默认情况下,UserInteraction属性UIImageView设置为NO.这是我们大多数人犯错误的地方.因此,在添加任何控件时检入的主要内容UIImageView是将其UserInteractionEnabled属性设置为YES.

[self.imageView setUserInteractionEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

所以修改你的代码如下:

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];
Run Code Online (Sandbox Code Playgroud)

快乐编码......

  • 这件事花了我 4-5 天,被这样的问题困扰 (2认同)

Vla*_*mir 5

UIImageView userInteractionProperty默认设置为NO,因此它不处理触摸并且不会将它们传播到其子视图.尝试将其设置为YES:

self.imageView.userInteractionEnabled = YES;
Run Code Online (Sandbox Code Playgroud)