UIButton 在自定义 UITableviewCell 中没有响应

Posted

技术标签:

【中文标题】UIButton 在自定义 UITableviewCell 中没有响应【英文标题】:UIButton does not respond in custom UITableviewCell 【发布时间】:2016-02-26 19:17:59 【问题描述】:

我有一个自定义 UITableViewCell,其中添加了一个 UIView“backgroundView”到 TableViewCell contentView。现在,UIImageView“sharedImage”作为子视图添加到“backgroundView”。

在这里,我将 UIButton“downloadButton”作为子视图添加到“sharedImage”。

我有一个“downloadButton”的选择器方法。但不幸的是,没有为 UIButton 调用 action 方法。

我尝试更改 UIControlEventTypes,尝试更改 UserInteractionEnabled ,bringSubViewToFront 选项但没有运气。

这里是代码。

        /*Add the background view to the Tableview Cell*/
    UIView *backGroundView = [[UIView alloc] init];
    backGroundView.frame = CGRectMake(mainViewFrameWidth - widthOfTheBackGroundView - 10.0 , 3.0, widthOfTheBackGroundView, heightOfTheBackGroundView);
    backGroundView.backgroundColor = [[UIColor hs_globalTint] colorWithAlphaComponent:0.2];
    backGroundView.layer.cornerRadius = 3.0;
    backGroundView.tag = 101;
    [sendingImageTableViewCell.contentView addSubview:backGroundView];

    NSString *imagePath = [NSString stringWithFormat:@"%@/%@",[self.appDelegateInstance getDocumentsPath],mFileInfo.thumbnailPath];

    UIImageView *sharedImage = [[UIImageView alloc] init];
    sharedImage.image = [self getSquareImageByCropping:[UIImage imageWithContentsOfFile:imagePath] withOrientation:UIImageOrientationUp];
    sharedImage.contentMode = UIViewContentModeScaleAspectFit;
    sharedImage.tag = 102;
    [backGroundView addSubview:sharedImage];

    sharedImage.frame = CGRectMake(5.0, 5.0, widthOfTheImageView, heightOfTheImageView);

UIButton *uploadButton = [UIButton buttonWithType:UIButtonTypeCustom];
uploadButton.frame = CGRectMake(0.0, 0.0, 30.0, 30.0);
uploadButton.selected = YES;
uploadButton.enabled = YES;
uploadButton.tag = indexPathOfTheImageCell.row;
uploadButton.backgroundColor = [UIColor clearColor];
[uploadButton addTarget:self action:@selector(onClickOfUploadButton:) forControlEvents:UIControlEventTouchUpInside];
[backGroundView addSubview:uploadButton];

阅读响应者链文档,但无法解决问题。如果我在这里出错,谁能告诉我?

【问题讨论】:

您需要UIControlEventTouchDown?如果你需要点击动作应该使用UIControlEventTouchUpInside 【参考方案1】:

您将 UIButton 配置为 uploadButton.enabled = NO; 您可以将其更改为“是”。 根据 Apple 的 GUI 指南,UIButton 的最小高度/宽度应为 44.0f - 否则用户可能无法点击它。

【讨论】:

我已将按钮启用为“是”。但没有运气。

以上是关于UIButton 在自定义 UITableviewCell 中没有响应的主要内容,如果未能解决你的问题,请参考以下文章

出队后,CALayer 在自定义 UITableViewCell NIB 上消失

如何捕获 UIButton 事件:在自定义 UITableViewCell 实现中添加了 UIButton

UIbutton 在自定义 UITableViewCell 中释放

UIButton 在自定义 UITableviewCell 中没有响应

按钮未在自定义 UIButton 中注册触摸

在自定义单元格中点击 UIButton 不会调用 didSelectRowAtIndexPath