【问题标题】:IOS Add observer for delegate function (like ) scrollViewDidEndDecelerating:IOS为委托函数添加观察者(如)scrollViewDidEndDecelerating:
【发布时间】:2012-04-26 21:07:16
【问题描述】:

您知道如何在标准委托方法调用中添加观察者(或通知)吗? (我知道这有点奇怪/不是观察者的本意)

我最终试图在 uiscrollview 类别方法中捕捉滚动视图的页面变化。

我可以像这样观察滚动视图的内容偏移量 [self addObserver:self forKeyPath:@"contentOffset" options:(NSKeyValueObservingOptionNew) context:NULL];

,与其在 contentOffset 更改时收到通知,我更愿意在滚动结束或开始减速时收到通知。

我正在为滚动视图开发一些高级功能(这意味着我已经知道我可以通过分配一个委托来捕捉委托调用)

有什么想法吗?

【问题讨论】:

    标签: ios object delegates uiscrollview


    【解决方案1】:

    如果您出于某种原因确实需要通知,为什么不实现您希望收到通知的委托方法并从中触发您自己的通知?

    【讨论】:

    • 我正在尝试向我的所有滚动视图添加一个功能(通过类别方法),但没有子类化,也没有在任何地方实现委托函数
    • KVO-ing跟踪/拖动/减速属性怎么样?如果您描述您尝试实现的功能类型可能会有所帮助。
    • 最后,我在自定义构建的滚动视图中实现了一个延迟加载结构。我的攻击计划是在分页更改时捕获,然后构建新视图,并销毁旧视图(在人的可视范围..我现在在哪里,我有一个正在被调用的观察者(对应于内容偏移量何时更改,但它(当然)被调用的频率比我想要的更频繁(因为我只需要捕捉页面变化)
    • 这听起来像观察trackingdecelerating 是你所需要的。当两者都更改为 NO 时,您就知道滚动肯定停止了。
    • 我试图让观察者减速.. [self addObserver:self forKeyPath:@"decelerating" options:(NSKeyValueObservingOptionNew) context:NULL];但它永远不会被调用(我猜是因为它是一个布尔值??)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多