我正在开发一个项目,我必须使用 UITableViews 进行大量工作。所以,我想检测表视图( UIScrollView )是否正在滚动。
首先,我使用 UIViewController 中的 UIScrollViewDelegate 处理它,其中我的 UITableView 被添加为子视图。现在,为了保持代码干净,我想继承 UITableView ,在这个类中,我必须访问 UIScrollView 的委托方法,例如- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
。
但我怎么能这样做?有可能吗?
答案 0 :(得分:4)
您所要做的就是实施- (void)scrollViewDidScroll:(UIScrollView *)scrollView
委托&检测滚动是否发生在UITableView
或其他地方。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView == self.tableView)
{
//your logic here
}
return;
}
答案 1 :(得分:2)
必须在类中定义那些UIScrollViewDelegate
方法,该类是要处理滚动更改的tableview的委托。如果您将这些方法放在UITableView
子类的实现文件中,那么您应该将tableview的委托设置为它自己:
[self setDelegate:self];
但是,您还必须在UITableViewDelegate
子类中定义UITableViewDataSource
和UITableView
方法。如果要在项目中的多个位置使用UITableView
子类,这可能会使事情变得复杂。如果我是你,我会仔细考虑我的设计并采取相应的行为。