UIScrollViewDelegate没有触发方法

时间:2012-06-27 08:21:45

标签: ios uiscrollviewdelegate

我有一个带有UIScrollView的View,带有一些文本(通过JSON加载)。我需要检测用户何时到达滚动结束(我在这里看到了其他问题)但问题是,我已经完成了.h工具UIScrollViewDelegate,我有

@property (retain, nonatomic) IBOutlet UIScrollView *scroll;

在我的.h文件中,并在.m文件中合成它。我在viewDidLoad中有这个:

self.scroll=[[UIScrollView alloc]init];
self.scroll.delegate=self;

在Interface Builder中进行连接(IBOutlet使用UIScrollView“滚动”,依此类推)。

之后,我通过调用JSON来完成UITextView,并执行与scrollView无关的其他内容。然后,我实现了方法scrollViewDidScroll。但是,它永远不会被称为。滚动工作正常,让我上下来看整个文本。但是,任何想法为什么不调用协议的方法?

谢谢。

3 个答案:

答案 0 :(得分:4)

您无需分配和初始化新的UIScrollView实例。当你从IB链接它时,它已经完成。这样你就破坏了链接。

顺便说一句,您的scroll属性定义为retain,所以

self.scroll = [[UIScrollView alloc]init];

是内存泄漏。

答案 1 :(得分:1)

您的UIViewController是否符合UISrollViewDelegate的要求?协议here

请记住以下内容:

  

UIScrollViewDelegate协议声明的方法允许   采用委托来响应来自UIScrollView类的消息   因此,对滚动等操作作出反应,并在某种程度上影响   缩放,缩放滚动内容和滚动动画。

没有强制方法,但您需要采用该协议才能使用这些方法。

答案 2 :(得分:0)

那就是......如果你想调用scrollViewDidScroll方法,我必须以编程方式设置contentSize(尽管滚动很好)。

太棒了...... x(