我在UITableView
内有一个不可滚动的UIScrollView
。而我遇到的问题是,当我触摸一行时,第一次点击时没有调用回调didSelectRowAtIndexPath:
,但是在第一次点击任务工作之后。
一些注意事项:
touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
,并且事件确实在此处传递,view
有效地为UITableViewCellContentView
。我只是不知道为什么第一次没有将事件发送到UITableView
,而是以下事件发送到{{1}}。
答案 0 :(得分:2)
如果您的UIScrollView
包含垂直内容且UITableView
作为此内容的一部分,则必须至少禁用UITableView
上的滚动 - 否则会让用户感到困惑当他将滚动您的mainView
和tableView
时,并且还会混淆框架,因为它不清楚在哪里发送平移手势。
根据经验,你应该避免在scrollViews
内放置表格视图,除非你真的知道你在做什么。
答案 1 :(得分:0)
请禁用滚动表视图并检查数据源和委托是否已连接到表视图。如果不遵循以下代码
@interface myClass ()<UITableViewDataSource, UITableViewDelegate>
- (void)viewDidLoad {
[super viewDidLoad];
self.myTableView.scrollEnabled = NO;
self.myTableView.delegate = self;
self.myTableView.dataSource = self;
}