我有一个视图,它有一个UIScrollView,带有一些文本(通过JSON加载)。我需要检测用户何时到达了滚动的末尾(我在这里看到了关于它的其他问题),但问题是,我已经完成了.h实现UIScrollViewDelegate,我已经
@property (retain, nonatomic) IBOutlet UIScrollView *scroll;在我的.h文件中,并在.m文件中合成了它。我的viewDidLoad中有以下内容:
self.scroll=[[UIScrollView alloc]init];
self.scroll.delegate=self;在接口生成器中建立连接(使用UIScrollView的IBOutlet“滚动”,等等)。
在那之后,我通过调用JSON来完成UITextView,并做其他与scrollView无关的事情。然后,我实现了方法scrollViewDidScroll。但是,它从来没有被调用过。滚动效果很好,让我上下移动来查看整个文本。但是,你知道为什么协议的方法没有被调用吗?
谢谢。
发布于 2012-06-27 16:26:51
你不需要分配和初始化一个新的UIScrollView实例。当您从IB链接它时,它已经完成了。那样的话,你就打破了这种联系。
顺便说一下,您的scroll属性被定义为retain,因此
self.scroll = [[UIScrollView alloc]init];
是内存泄漏。
发布于 2012-06-27 16:26:30
您的UIViewController是否符合UISrollViewDelegate?协议here。
请记住以下几点:
UIScrollViewDelegate协议声明的方法允许采用的代理响应来自UIScrollView类的消息,从而响应并在某些情况下影响操作,例如滚动、缩放、减速滚动内容和滚动动画。
没有强制方法,但您需要采用协议才能使用这些方法。
发布于 2012-06-27 17:04:51
那是..。如果您想要调用scrollViewDidScroll方法,我必须以编程方式设置contentSize (尽管滚动做得很好)。
太棒了..。x(
https://stackoverflow.com/questions/11222093
复制相似问题