我有一个应用程序,其中UITableView
内有一个UIView
,它再次位于UIScrollView
内,因此层次结构如下:
UIScrollView
- > UIView
- > UITableView
我的UITableView
内的数据已正确填写。
现在,我的问题在于,当我滚动UITableView
时,UIScrollView's
委托方法scrollViewDidEndDecelerating:
和scrollViewDidEndDragging::
会被调用。
我不想要这种行为,我该怎么做才能阻止这种行为?
任何人请帮助, 提前谢谢!!!
答案 0 :(得分:8)
UITableViewDelegate扩展了UIScrollViewDelegate。因此调用委托方法。
要停止此操作,您可以在分配tableView时设置tableView.tag = 1000;
,并在UIScrollViewDelegate方法(scrollViewDidEndDecelerating: and scrollViewDidEndDragging::
)中添加以下内容:
if(scrollView.tag == 1000)
return;
答案 1 :(得分:3)
因为UITableView继承自UIScrollView。所以它显示了UIScrollView的所有属性和行为。如果你不想要这个,请做一件事。
假设您的页面中有另一个滚动视图。
在viewDidLoad
或XIB
(如果你在XIB中有你的桌面视图),请为你的tableview设置一个标签。
代码,
self.objYourTableView.tag = 101;
然后在滚动视图委托
中- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
if(!(scrollView.tag == 101))
{
// Go for your code to run.
}
}
如果表视图调用了代码,那么代码将跳过。其他情况下它完美无缺。希望这会对你有所帮助。