bas*_*elq 6 cocoa-touch ios qlpreviewcontroller uidocumentinteraction
好的,所以我要做的是创建一个类似这张图片的文档查看器:

基本上应该发生的是,当屏幕被点击任何地方时,顶部和底部栏将出现.再次点击它们就会消失.
我已经进行了子类化QLPreviewController,并设法利用已经附带的(顶部)导航栏QLPreviewController.这很好用.现在,我需要在显示顶部栏时显示底栏.我可以UIToolbar在页面底部添加一个,但是我需要拦截触摸事件,这样我就可以隐藏/取消隐藏底栏.我似乎无法弄清楚如何让它工作.我尝试添加一个子类本身UITapGestureRecognizer的视图,QLPreviewController没有运气.我还尝试创建一个覆盖UIView,UITapGestureRecognizer但有一个阻止用户表单与下面的文档交互.
任何人都有任何想法如何做到这一点?提前致谢!
好吧,我知道问题出在哪里了UITapGestureRecognizer。您需要将委托设置为 self,然后覆盖
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
函数并返回 yes。因此,在我的 QLPreviewController 子类中,我实现了 UIGestureRecognizerDelegate,并在 viewWillAppear 中:
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(documentTapped:)];
tapGesture.cancelsTouchesInView = NO;
tapGesture.delegate = self;
[self.view addGestureRecognizer:[tapGesture autorelease]];
Run Code Online (Sandbox Code Playgroud)
然后简单地:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这样,QLPreviewController 仍将接收所有其他非点击触摸事件,以便用户仍然可以与文档交互
| 归档时间: |
|
| 查看次数: |
4884 次 |
| 最近记录: |