2016-09-06 74 views
0

我正在學習概念團。我知道它的定義以及它在幾個例子中的工作原理。如果我們在其UIScrollView中包含每個UIScrollViewDelegate方法,該怎麼辦?

如果我們在UIScrollView中包含每個UIScrollViewDelegate方法該怎麼辦?我們仍然可以使其工作,因爲如果我們可以讓UIScrollView自行行事,而不是發送信息給其代表並等待代表的回覆。

爲什麼我們不這樣做?是否因爲UIScrollView會變得龐大?是否因爲我們想UIScrollView來處理大多數常規任務並讓其委託處理其他一些小任務?爲什麼這種方式比委派更糟?

這個問題可以擴展到一個普遍的問題:在iOS上下文中授權的動機是什麼?

回答

1

代表團(在這種情況下)的重點是讓其他事情知道發生的事情。滾動視圖已經知道發生的一切。滾動視圖沒有理由實現任何委託方法。委託方法可用,因此滾動視圖可以(可選地)告訴其委託關於特定事件,以便委託可以根據需要做出相應的反應。

一個更好的例子可能是UITableView。它有一個委託和一個數據源。數據源的要點是,表格視圖可以提出請求以確定要顯示的數據量和數量。其代表在那裏通知代表有關桌面視圖發生的各種事件。表視圖實現所有這些數據源和委託方法是沒有意義的。整個觀點是表格視圖是通用的,可以顯示任何數量的任何內容。數據源提供了要顯示的內容的詳細信息。

1

UIScrollView真的很普遍,在iOS開發過程中被大量使用。滾動非常簡單,基本上在任何地方都一樣。但是,通常情況下,只需要在一個位置添加一些行爲到scrollView。例如,每當用戶在主屏幕上滾動內容時,您想要將消息打印到控制檯。您不希望將此邏輯添加到UIScrollView,因爲您只希望這一個滾動視圖以這種方式運行。通過具有將代表附加到UIScrollView的能力,您可以向某個scrollView注入某些特定行爲而不會改變其他scrollView的行爲。

相關問題