【发布时间】:2012-02-18 11:11:20
【问题描述】:
我有一个 UIScrollView 需要子类化,并且在子类中我需要附加 UIScrollViewDelegate 以便我可以实现 viewForZoomingInScrollView 方法。
然后我有一个UIViewController,我需要在其中实例化我创建的这个UIScrollView 子类的一个对象,我还想让 UIViewController 成为这个对象的UIScrollViewDelegate,这样我就可以实现scrollViewDidZoom在这个UIViewController 类中。
如何让一个对象有两个委托? (我知道我可以很容易地只拥有一个委托并在那里实现这两种方法,但出于设计目的,我想按照我提到的方式来做)。
【问题讨论】:
-
你为什么要这样做?为什么不能只将来自 customScrollView 的消息传递给具有 SV(带有第二个(自定义)委托)的 VC?
-
也许这就是我需要做的,所以如果我在我的 SV 子类中实现 scrollViewDidZoom,我怎么能在触发时向我的 VC 发送消息? @totumus maximus
-
您必须在您的自定义视图中创建一个自定义委托(协议),并让您的 VC 委托它。在调用您的滚动视图委托的那一刻,您还调用了自定义委托中的自定义委托方法之一。这样,滚动视图保持自己的责任,并且您的父视图可以对特定的滚动功能做出反应。我会把它写成答案给你。
标签: iphone objective-c ios cocoa-touch delegates