我在一个视图控制器上有两个UITableView(视图控制器是它们的委托)。其中一个将取决于scrollViewWillEndDragging:withVelocity:targetContentOffset :(我想做某种自定义分页)。另一个将pagingEnabled属性设置为YES,当我第一次尝试滚动它时,XCode会给我警告
2012-09-07 16:46:39.672 test[17393:707] Stop offset can not be modified for paging scroll views
即使该方法的代码目前是:
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
return;
}
当我删除方法scrollViewWillEndDragging:withVelocity:targetContentOffset:一切似乎都没问题。我是否需要尝试创建另一个委托(没有该方法)并使用分页委托创建UITableView,或者我不应该担心?
答案 0 :(得分:5)
您在控制台中看到此警告的原因是,当滚动视图启用了分页时,方法scrollViewWillEndDragging:withVelocity:targetContentOffset:
无效。文档说明如下。
当滚动视图的pagingEnabled属性的值为YES时,不会调用此方法。
换句话说,Xcode会给你一个警告,但是,正如@tiguero指出的那样,最好检查每个委托方法哪个表视图(滚动视图)正在发送委托消息。
对于警告,您可以忽略此警告,因为您的控制器是两个表视图的委托,其中一个表视图已启用分页。
答案 1 :(得分:0)
我对你在这里想要实现的目标感到有点困惑。然而,如果你有相同的视图控制器作为两个UITableViews的委托,我建议实现这些委托方法,并通过检查委托方法参数中传递的scrollView变量来检查你正在处理哪个scrollView。