将 UIScrollView 委托设置为它自己的自定义类

Posted

技术标签:

【中文标题】将 UIScrollView 委托设置为它自己的自定义类【英文标题】:Set UIScrollView delegate to it's own custom class 【发布时间】:2015-12-03 17:26:29 【问题描述】:

我从 UIScrollView 创建了一个自定义组件。

我创建了一个自定义 UIScrollview 类并将其添加到我的滚动视图中。

在“- (void)drawRect:(CGRect)rect”的自定义类中,我按照我想要的方式设计了我的滚动视图。并且一切正常。

我的问题是如何将我的滚动视图添加为自定义类的委托。

我在我的自定义类中做了这个 -

self.delegate = self;

并且委托被设置,我可以访问 UIScroll 视图委托方法(如 - - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView)。

我的问题是一旦我将我的委托设置为“self.delegate = self;”编译器给了我如下警告

请谁能帮我解决这个警告。

【问题讨论】:

【参考方案1】:

您需要将您的自定义类声明为符合 UIScrollViewDelegate 协议。

查看Apple docs on protocols。

在你的头文件中,你可能有类似的东西

@interface OGOTimeSelector : UIScrollView

要声明您的类符合 UIScrollViewDelegate 协议,这将变为:

@interface OGOTimeSelector : UIScrollView <UIScrollViewDelegate>

【讨论】:

是的,它现在可以工作了。感谢您的快速回答。

以上是关于将 UIScrollView 委托设置为它自己的自定义类的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollview 中的 ContentOffset 问题

在原始子类中捕获委托方法调用

UIScrollView 不会滚动,从未调用过委托方法

为啥 UIScrollView 委托无法连接到自身?

为同一类中的 2 个不同 UIScrollView 设置委托

UIScrollView 实现委托