我已经创建了一个自定义的UIView,在UIView里面,我添加了一个像这样的UITableView:
treeView = [[UITableView alloc] initWithFrame:CGRectMake(0, 80, slider.frame.size.width, slider.frame.size.height - 80)];
[treeView setDelegate:self];
[treeView setDataSource:self];
[self addSubview:treeView];
[treeView release];
当应用加载时,表似乎加载正常。但是,当我尝试滚动表格时,它根本没有响应触摸。
我还实现了这些委托/数据源方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
有谁知道为什么会这样?
由于
答案 0 :(得分:21)
有几种可能性:
userInteractionEnabled
设置为NO。pointInside:withEvent:
或hitTest:withEvent:
。答案 1 :(得分:0)
确保需要接收触摸事件的视图上的userInteractionEnabled为YES。也可以尝试在视图上调用becomeFirstResponder,并在完成后调用resignFirstResponder。对不起,我没有更多的细节但是我做了这个已经有一段时间了。祝你好运!
答案 2 :(得分:0)
这是它可能发生的另一个原因......
UITableView是另一个视图的子视图,其中框架小于表视图。它似乎没有多大意义,但它可能发生!我有一个案例软件,tableview的父级有一个宽度= 0。
当然导致pointInside:withEvent:或hitTest:withEvent:返回NO!
答案 3 :(得分:0)
对我来说,我的TabView没有响应的原因是因为变换动画。我正在使用我的表格视图
view.layer.transform = CATransform3DMakeScale(0.5,0.5,0);
这是3D转换属性。我发现使用2D转换而不是toVC.view.layer.affineTransform = CGAffineTransformMakeScale(0.5, 0.5);
然后我的表视图响应我的触摸和滚动。
我不确定究竟是什么原因,但这是我的观察。
答案 4 :(得分:0)
也许有人会需要这个答案:
使视图直接添加到单元格,而不是添加到
cell.content
这对我有用,当不使用表中的单元格但使用普通视图时。 似乎此刻触摸不会转发到contentView。