Ios 如果我们在其UIScrollView中包含每个UIScrollViewDelegate方法,会怎么样?

Ios 如果我们在其UIScrollView中包含每个UIScrollViewDelegate方法,会怎么样?,ios,cocoa,delegates,Ios,Cocoa,Delegates,我正在学习代表团的概念。在几个例子中,我知道它的定义和工作原理 如果我们将每个UIScrollViewDelegate方法都包含在其UIScrollView中,会怎么样?我们仍然可以让它工作,因为如果我们可以让UIScrollView自行操作,而不是将信息发送给其委托人并等待委托人的响应 我们为什么不这样做呢?是因为UIScrollView会变得庞大吗?是不是因为我们想UIScrollView来处理大多数常规任务,并让其委托人处理其他一些次要任务?为什么这种方式比授权更糟糕 这个问题可以扩展到一

我正在学习代表团的概念。在几个例子中,我知道它的定义和工作原理

如果我们将每个
UIScrollViewDelegate
方法都包含在其
UIScrollView
中,会怎么样?我们仍然可以让它工作,因为如果我们可以让
UIScrollView
自行操作,而不是将信息发送给其委托人并等待委托人的响应

我们为什么不这样做呢?是因为
UIScrollView
会变得庞大吗?是不是因为我们想
UIScrollView
来处理大多数常规任务,并让其委托人处理其他一些次要任务?为什么这种方式比授权更糟糕


这个问题可以扩展到一个一般性的问题:在iOS环境下,授权的动机是什么?

授权的全部目的(在此环境下)是让其他人知道正在发生的事情。滚动视图已经知道了它自身正在发生的一切。滚动视图没有理由实现任何委托方法。委托方法可用,因此滚动视图可以(可选)告诉其委托有关特定事件的信息,以便委托可以根据需要做出相应的反应


更好的例子可能是
UITableView
。它有一个委托和一个数据源。数据源的作用是,表视图可以发出请求,以确定要显示的数据和数据量。它的委托用于通知委托有关表视图中发生的各种事件。表视图实现所有这些数据源和委托方法是没有意义的。整个要点是,表视图是通用的,可以显示任何内容的任意数量的数据。数据源提供了显示内容的详细信息。

授权的全部意义(在此上下文中)是让其他人知道正在发生的事情。滚动视图已经知道了它自身正在发生的一切。滚动视图没有理由实现任何委托方法。委托方法可用,因此滚动视图可以(可选)告诉其委托有关特定事件的信息,以便委托可以根据需要做出相应的反应


更好的例子可能是
UITableView
。它有一个委托和一个数据源。数据源的作用是,表视图可以发出请求,以确定要显示的数据和数据量。它的委托用于通知委托有关表视图中发生的各种事件。表视图实现所有这些数据源和委托方法是没有意义的。整个要点是,表视图是通用的,可以显示任何内容的任意数量的数据。它是提供显示内容细节的数据源。

UIScrollView
非常通用,在iOS开发过程中大量使用。滚动非常简单,在任何地方都基本相同。但是,在某些情况下,您通常只想在一个位置向scrollView添加一些行为。例如,每当用户在主屏幕上滚动内容时,您都希望将消息打印到控制台。您不希望将此逻辑添加到
UIScrollView
,因为您只希望此滚动视图以这种方式运行。通过将委托附加到
UIScrollView
,您可以在不更改其他scrollView行为的情况下将某些特定行为注入特定的scrollView。

UIScrollView
非常通用,在iOS开发过程中大量使用。滚动非常简单,在任何地方都基本相同。但是,在某些情况下,您通常只想在一个位置向scrollView添加一些行为。例如,每当用户在主屏幕上滚动内容时,您都希望将消息打印到控制台。您不希望将此逻辑添加到
UIScrollView
,因为您只希望此滚动视图以这种方式运行。通过将委托附加到
UIScrollView
,您可以在不更改其他scrollView行为的情况下,将某些特定行为注入特定的scrollView