UITableView的滚动事件
问题描述:
我想检测是否mytable的观点已滚动,我试过所有触摸事件,像这样的:UITableView的滚动事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
//my code
}
,但似乎所有的触摸事件不响应滚动,但他们的唯一反应当细胞被触摸,移动,等...
有没有办法检测UITableView的滚动事件?
答
如果要实现UITableViewDelegate
协议,还可以实现的UIScrollViewDelegate
方法之一:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
或
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
举例来说,如果你有一个名为tableView
属性:
// ... setting up the table view here ...
self.tableView.delegate = self;
// ...
// Somewhere in your implementation file:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"Will begin dragging");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"Did Scroll");
}
这是因为UITableViewDelegate
符合UIScrollViewDelegate
,可以在文档或头文件中看到。
答
如果Solidus提出了多个表视图,则可以将回调中的滚动视图转换为tableview,因为UITableView源自UIScrollView,然后与桌面视图进行比较以查找源表格视图。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
UITableView* fromTableView = (UITableView*) scrollView;
UITableView* targetTableView = nil;
if (fromTableView == self.leftTable) {
targetTableView = self.leftTable;
} else {
targetTableView = self.rightTable;
}
...
}
+0
完美这帮了我 – Paul 2015-03-07 23:25:00
答
这些是UITableViewDelegate
的方法斯威夫特3,以检测当一个UITableView
将滚动或做滚动:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
请参阅本[中UIScroll查看在iPhone触摸事件(HTTP://计算器.com/a/3603140/1072867) – akk 2011-12-27 08:58:15