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];
}