2016-09-06 39 views
0

我正在学习概念团。我知道它的定义以及它在几个例子中的工作原理。如果我们在其UIScrollView中包含每个UIScrollViewDelegate方法,该怎么办?

如果我们在UIScrollView中包含每个UIScrollViewDelegate方法该怎么办?我们仍然可以使其工作,因为如果我们可以让UIScrollView自行行事,而不是发送信息给其代表并等待代表的回复。

为什么我们不这样做?是否因为UIScrollView会变得庞大?是否因为我们想UIScrollView来处理大多数常规任务并让其委托处理其他一些小任务?为什么这种方式比委派更糟?

这个问题可以扩展到一个普遍的问题:在iOS上下文中授权的动机是什么?

回答

1

代表团(在这种情况下)的重点是让其他事情知道发生的事情。滚动视图已经知道发生的一切。滚动视图没有理由实现任何委托方法。委托方法可用,因此滚动视图可以(可选地)告诉其委托关于特定事件,以便委托可以根据需要做出相应的反应。

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

1

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

相关问题