[英]UITableView Programmatically inside UIScrollView not calling delegate methods
[英]Why UITableView calls UIScrollView's delegate methods?
我有一個應用程序,其中我在UIView
有一個UITableView
,它再次位於UIScrollView
,因此層次結構如下所示:
UIScrollView
- > UIView
- > UITableView
我的UITableView
的數據已正確填充。
現在,我的問題是,當我滾動我的UITableView
, UIScrollView's
委托方法scrollViewDidEndDecelerating:
和scrollViewDidEndDragging::
被調用。
我不想要這種行為,我該怎么做才能阻止這種行為?
任何人請幫助,謝謝!
UITableViewDelegate擴展了UIScrollViewDelegate。 因此調用委托方法。
要停止此操作,您可以設置tableView.tag = 1000;
當你scrollViewDidEndDecelerating: and scrollViewDidEndDragging::
tableView並在UIScrollViewDelegate方法( scrollViewDidEndDecelerating: and scrollViewDidEndDragging::
,在最開始時添加:
if(scrollView.tag == 1000)
return;
因為UITableView繼承自UIScrollView。 所以它顯示了UIScrollView的所有屬性和行為。 如果你不想要這個,那么請做一件事。
假設您的頁面中有另一個滾動視圖。
在viewDidLoad
或XIB
(如果你在XIB
有你的tableview),為你的tableview設置一個標簽。
在代碼中,
self.objYourTableView.tag = 101;
然后在滾動視圖委托中
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
if(!(scrollView.tag == 101))
{
// Go for your code to run.
}
}
因此,如果表視圖調用了代碼,那么代碼將跳過。 其他情況下它完美無缺。 希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.