Ios 修复UITableViewCell内UILabel上的触摸不工作?

Ios 修复UITableViewCell内UILabel上的触摸不工作?,ios,objective-c,uitableview,uitouch,Ios,Objective C,Uitableview,Uitouch,UILabel`inside table视图对触摸没有响应,尽管触摸只在单元格的空白区域工作 已验证所有连接、约束和类。 在属性检查器中检查内部UI元素的所有属性 确保所有这些都是用户交互“勾选”☑️ 检查用户定义的运行时属性中的属性,并删除 不需要 检查类名是否为正确的“超级类”/“相关自定义”
 “阶级”与否 检查内部连接检查器连接是否有任何警告⚠️, 如果存在警告,请断开连接,然后重新连接 在属性检查器中检查内部UI元素的所有属性 确保所有这些都是用户交互“勾选”☑️ 检查用户定义的运

UILabel`inside table视图对触摸没有响应,尽管触摸只在单元格的空白区域工作

已验证所有连接、约束和类。

  • 在属性检查器中检查内部UI元素的所有属性
  • 确保所有这些都是用户交互“勾选”☑️
  • 检查用户定义的运行时属性中的属性,并删除 不需要
  • 检查类名是否为正确的“超级类”/“相关自定义”
 “阶级”与否
  • 检查内部连接检查器连接是否有任何警告⚠️, 如果存在警告,请断开连接,然后重新连接

  • 在属性检查器中检查内部UI元素的所有属性
  • 确保所有这些都是用户交互“勾选”☑️
  • 检查用户定义的运行时属性中的属性,并删除 不需要
  • 检查类名是否为正确的“超级类”/“相关自定义”
 “阶级”与否
  • 检查内部连接检查器连接是否有任何警告⚠️, 如果存在警告,请断开连接,然后重新连接

首先,您应该知道UILabel不会响应TouchUpInside事件。 除此之外,在UITableViewCell中引发的事件在superview中不可捕获(即承载相应表的UITableViewController或UIViewController)

为了实现您的目标,您需要将UILabel更改为UIButton。为了将TouchUpInside事件升级到super view,您有两个选项: 1-为您的单元格创建一个代理,并在superview中使用它。 2-从您的手机发布通知,并在超级视图中观察(捕获)它


祝你好运。:-)

首先,您应该知道UILabel不会响应TouchUpInside事件。 除此之外,在UITableViewCell中引发的事件在superview中不可捕获(即承载相应表的UITableViewController或UIViewController)

为了实现您的目标,您需要将UILabel更改为UIButton。为了将TouchUpInside事件升级到super view,您有两个选项: 1-为您的单元格创建一个代理,并在superview中使用它。 2-从您的手机发布通知,并在超级视图中观察(捕获)它


祝你好运。:-)

默认情况下,
ui标签
用户交互未启用。请检查一下。如果未启用,则启用并检查。这是不可能的。如果您正在调用UITableViewDelegate的didSelectRow,点击标签应该可以正常工作。给我们看看代码。@Nitish嗨,我的项目确实发生了这种情况,UILabel对触摸没有反应。只有电池内部的空白区域响应触摸事件。后来发现在属性检查器中,用户定义的运行时属性下设置了一些自定义属性,这导致了此问题。请提供如何处理用户交互的代码。默认情况下,
UILabel
用户交互未启用。请检查一下。如果未启用,则启用并检查。这是不可能的。如果您正在调用UITableViewDelegate的didSelectRow,点击标签应该可以正常工作。给我们看看代码。@Nitish嗨,我的项目确实发生了这种情况,UILabel对触摸没有反应。只有电池内部的空白区域响应触摸事件。后来发现,在属性检查器中,在用户定义的运行时属性下设置了一些自定义属性,这导致了此问题。请提供如何处理用户交互的代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{
    if (tableView == sessionListTable){
        selectedSessionId = [[self.sessionNames objectAtIndex:indexPath.row] objectForKey:@"session_id"];
        selectedSessionName = [[self.sessionNames objectAtIndex:indexPath.row] objectForKey:@"session_name"];
        NSLog(@"%@",selectedSessionId);
        [StudentCommon sharedInstance].mTeacherSessionId = selectedSessionId;
        [self remoteSessionButtonClick];
        currentIndexPath = indexPath;
        previousIndexPath = currentIndexPath;
        [sessionListTable reloadData];
        [sessionListPopUp removeFromSuperview];
    }