我有一个 UIViewController
,里面有一个 UITableView
。我想使用 UIScrollViewDelegate
捕捉表格的滚动。表的委托(delegate)设置正确,因为我可以执行 UITableView
方法,但是在滚动时,方法 scrollViewDidScroll
被调用,但 scrollViewDidEndDragging
未被调用。我还实现了 scrollViewWillEndDragging
等,但只调用了 scrollViewDidScroll
。所以想知道为什么不调用scrollViewDidEndDragging
。
编辑
这里其实没什么,只是记录事件而已。
这个叫
- (void)scrollViewDidScrollUIScrollView *)scrollView
{
DDLogVerbose(@"did scroll");
}
这个不叫
- (void)scrollViewDidEndDraggingUIScrollView *)scrollView willDecelerateBOOL)decelerate
{
DDLogVerbose(@"end drag");
}
编辑
好的,我尝试在我的 UItableview 子类中添加 scrollViewDidEndDragging,它是有效的。那么如何让我的viewcontroller 处理scrollViewDidEndDragging?
我创建了一个干净的项目并添加了一个 tableView 来测试它。以下是代码:
@interface ViewController () <UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate>
@end
@implementation ViewController
- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section
{
return 1;
}
- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
}
- (void)scrollViewDidEndDraggingUIScrollView *)scrollView willDecelerateBOOL)decelerate
{
NSLog(@"end drag");
}
- (void)scrollViewDidEndDeceleratingUIScrollView *)scrollView
{
NSLog(@"end decelerating");
}
@end
这里是拖拽后的日志:
2015-10-09 14:21:57.442 test[85247:453953] end drag
2015-10-09 14:21:58.178 test[85247:453953] end decelerating
所以这些方法被调用了。
您应该粘贴更多代码以帮助我们找到问题。
关于ios - 在 UITableView 中未调用 scrollviewDidEndDragging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029438/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |