繁体   English   中英

将子视图添加到 UIButton

[英]addSubView to UIButton

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

我使用以下代码:

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,该按钮将再次起作用。 如果有人知道如何解决这个问题,那就太好了!

太好了!!!

我找到了一个快速的解决方案。 我需要将 asyncimageview 设置为以下内容:

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

在这之后它起作用了!

尝试:

[UIButton buttonWithType:UIButtonTypeCustom];

代替:

[UIButton buttonWithType:UIButtonControlType];

这里重要的是确保将userInteractionEnabled设置为NO 幸运的是,它立即适用于UIImageViewUILabel (可能适用于UIView的其他子类,但这些是添加到按钮的最流行的子视图),因为默认情况下,此类的默认设置为NO 不幸的是,它在UIView中设置为YES ,因此请确保在这种情况下更改它。 没有必要与任何其他标志混在一起。 问题的本质是很多人不知道这个标志的默认值在子类中是不同的。

你有没有试过把:

[asyncImage setUserInteractionEnabled:YES];

在同一情况下,我执行此操作:从 UIButton 继承并将按钮的所有标签和图像视图添加到 self,最后将新按钮作为最后一个子视图查看并将 self 按钮的目标添加到最后一个按钮(也将 backgroundColor 设置为 clearColor 以实现透明)。 现在它将是可点击的并且工作正常。

在 Swift 中,测试您的 UIButton 是否被阻止

uibtn.userInteractionEnabled = false
uibtn.exclusiveTouch = false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM