5

オクラホマので、私はこの絵似ているドキュメントビューア作成されてやろうとしています:画面を任意の場所にタップされると がenter image description hereカスタムQLPreviewControllerまたはUIDocumentInteractionController

基本的にはどうするかであるが、上部バーと下部バーが表示されます。もう一度タップすると、それらは消えます。

私はQLPreviewControllerをサブクラス化し、すでにQLPreviewControllerに付属している(上の)ナビゲーションバーを活用することができました。これは正常に動作します。今度は、トップバーが表示されるたびにボトムバーを表示する必要があります。私はUIToolbarをページの下部に追加することができますが、タッチイベントをインターセプトする必要がありますので、下のバーを非表示/非表示にすることができます。私はそれを働かせる方法を理解できないようです。私は、を、サブクラス自体のビューに追加してみました。また、UITapGestureRecognizerを持つオーバーレイを作成しようとしましたが、ユーザーフォームがその下のドキュメントとやりとりするのを妨げていました。

誰でもどのようにこれを行うにはどのようなアイデアがありますか?前もって感謝します!

答えて

3

[OK]を、私はUITapGestureRecognizerで問題があったとわかった。あなたは自分にデリゲートを設定し、

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

関数をオーバーライドし、はいを返却する必要があります。だから私のQLPreviewControllerサブクラスでは、私がUIGestureRecognizerDelegateを実装し、viewWillAppearで:

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(documentTapped:)]; 
tapGesture.cancelsTouchesInView = NO; 
tapGesture.delegate = self; 
[self.view addGestureRecognizer:[tapGesture autorelease]]; 

そして、単に:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

この方法は、QLPreviewControllerはまだので、すべての他の非タップタッチイベントを受け取りますユーザーは、ドキュメント

0

サブクラスQLPreviewControllerと対話して、上書きできること

-(void)contentWasTappedInPreviewContentController:(id)item {} 

これだけです!

+0

残念ながら、リンゴはプライベートAPIと考えているので、これは貴重な解決策ではないようです。 http://stackoverflow.com/questions/6091027/qlpreviewcontrollers-view#comment34156919_22231721を参照してください。 – Lifely

関連する問題