簡體   English   中英

為什么UITableView調用UIScrollView的委托方法?

[英]Why UITableView calls UIScrollView's delegate methods?

我有一個應用程序,其中我在UIView有一個UITableView ,它再次位於UIScrollView ,因此層次結構如下所示:

UIScrollView - > UIView - > UITableView

我的UITableView的數據已正確填充。

現在,我的問題是,當我滾動我的UITableViewUIScrollView's委托方法scrollViewDidEndDecelerating:scrollViewDidEndDragging::被調用。

我不想要這種行為,我該怎么做才能阻止這種行為?

任何人請幫助,謝謝!

UITableViewDelegate擴展了UIScrollViewDelegate。 因此調用委托方法。

要停止此操作,您可以設置tableView.tag = 1000; 當你scrollViewDidEndDecelerating: and scrollViewDidEndDragging:: tableView並在UIScrollViewDelegate方法( scrollViewDidEndDecelerating: and scrollViewDidEndDragging:: ,在最開始時添加:

if(scrollView.tag == 1000)
    return;

因為UITableView繼承自UIScrollView。 所以它顯示了UIScrollView的所有屬性和行為。 如果你不想要這個,那么請做一件事。

假設您的頁面中有另一個滾動視圖。

viewDidLoadXIB (如果你在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM