jea*_*n71 5 io objective-c key-value-observing uikit
当QLPreviewController更改显示的文档时,我有一个需要通知的对象.QLPreviewController具有属性currentPreviewItemIndex,该属性在文档更改时更新.我已经添加了我的对象作为currentPreviewItemIndex的观察者,它在我的代码中更改了属性时收到通知,到目前为止一切都很好.问题是用户可以在屏幕上更改显示的文档,我发现在这种情况下不会生成通知.
在这种情况下,收到通知的任何解决方案?我想当通知属性currentPreviewItemIndex的setter时生成通知,并且可能在用户滑动属性时在对象QLPreviewController内部更改.
另一种解决方案可能是在QLPreviewController中禁用水平滑动但保留垂直滑动(有箭头按钮来更改显示的文档).你是怎样做的?
在此先感谢您的帮助.
Giannandrea
在 QLPreviewController 上创建一个类别并调整适当的方法,然后为 KVO 添加 willChange/didChange ;)
不过说真的:我尝试过KVO,但它对我来说也不起作用.. 1)id向苹果提交了一个错误,因为说你需要这个
但作为解决方法
这就是所谓的“ok”,每次我们滑动时,我都会“破解”它来触发你自己的正确 KVO。就像是
static NSInteger oldIndex = -1; //reset when the panel is hidden or shown
int newIndex = qlController.displayedIndex;
if(oldIndex != newIndex) {
oldIndex = newIndex;
[qlController willChangeValueForKey:@"displayedIndex"];
[qlController didChangeValueForKey:@"displayedIndex"];
}
Run Code Online (Sandbox Code Playgroud)
我在这里内联写了它,所以肯定会有拼写错误和错误,但我认为一般方法是可行的。
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |