1

我有一个带有 UIScrollView 的视图,带有一些文本(通过 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。但是,它永远不会被调用。滚动效果很好,让我上下查看整个文本。但是,知道为什么不调用协议的方法吗?

谢谢你。

4

3 回答 3

4

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

顺便说一句,您的scroll财产被定义为retain,所以

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

是内存泄漏。

于 2012-06-27T08:26:51.030 回答
1

你的UIViewController符合UISrollViewDelegate吗?这里的协议。

请记住以下几点:

UIScrollViewDelegate 协议声明的方法允许采用委托响应来自 UIScrollView 类的消息,从而响应并在一定程度上影响滚动、缩放、滚动内容减速和滚动动画等操作。

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

于 2012-06-27T08:26:30.297 回答
1

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

太棒了... x(

于 2012-06-27T09:04:51.220 回答