addSubView到UIButton

我正在尝试将子视图添加到UIButton。 现在工作正常。 但是一旦添加子视图,button就不能再点击了。

我使用下面的代码:

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(column*100+24, row*80+10, 64, 64); [button addSubview:asyncImage]; [button addSubview:price]; [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

如果我切出2个addsubviews,该button再次工作。 如果有人知道如何解决这个问题,那就太棒了!

日Thnx !!!

我find了一个快速解决scheme 我需要将asyncimageview设置为以下内容:

 asyncImage.userInteractionEnabled = NO; asyncImage.exclusiveTouch = NO; 

之后它工作!

尝试:

[UIButton buttonWithType:UIButtonTypeCustom];

代替:

[UIButton buttonWithType:UIButtonControlType];

你试过把:

 [asyncImage setUserInteractionEnabled:YES]; 

在同一个sitiation我做这个动作:从UIButtoninheritance,并添加到自己的button的所有标签和imageview的,最后把新的button,作为最后一个子视图,并添加自我button的目标到最后一个button(也设置backgroundColor clearColor的透明)。 现在它将是可点击的,并正常工作。

这里重要的是要确保userInteractionEnabled将被设置为NO 。 幸运的是,它可以立即为UIImageViewUILabel (也许为UIView其他子类,但这些是最受欢迎的子视图添加到button),因为默认情况下这个类默认设置为NO 。 不幸的是它在UIView被设置为YES ,所以确保在这种情况下进行更改。 与任何其他标志乱七八糟不应该是必要的。 问题的本质是很多人不知道这个标志的默认值在子类中是不同的。

在Swift中,testing你的UIButton是否被阻塞

 uibtn.userInteractionEnabled = false uibtn.exclusiveTouch = false