2012-01-05 10 views
0

私はPDF形式のかなり大きなヘルプセクションを持つアプリケーションを持っています。 PDFが非常に大きく、楽器ではプロセッサに多少の負担がかかることが分かりますので、私はそれを段階的に解消します。UI要素のLongpress(または、どの要素が押されたかを確認する方法)

軽い実装では、指定したテキストをポップオーバーで表示するすべてのUI要素に添付できるUILongPressGestureRecognizerを使用するか、選択した要素の機能を示すUIMenuControllerを使用します。

私の質問は次のとおりです。ビュー内のすべての要素にタグのようなものを添付して、単一のメソッドに渡すにはどうすればよいですか?タグを試してみたところ、私のメソッドシグネチャの(id)senderセクションにアクセスする方法がないことがわかったので、要素を区別する方法はありませんでした。

編集者:以下の人に:ビューのタグを決定することに関して私の質問を解決しましたが、タグを確認するためにジェスチャ認識ツールをUIBarButtonItemに追加する方法を教えてください。あなたの実装は、UIGestureRecognizersがタグプロパティを持っていないので、非常に不快なセレクタを許可します。

答えて

1

送信者として渡されたオブジェクトからタグを派生させることができます。クラスをチェックして適切にキャストする必要があります。 tagUIViewなので、ここから始めます。

- (void)someMethod:(id)sender 
{ 
    if (![sender isKindOfClass:[UIView class]]) 
     return; 

    UIView *senderView = (UIView *)sender; 
    NSInteger tag = senderView.tag; 
} 
+0

優れています。私は今それをテストします。 – CodaFi

+0

動作している間、私の編集をチェックしてください。 – CodaFi

1

タグには、 - (IBAction)xxxxxx:(id)送信者からアクセスできます。そのように:

NSInteger tagValue = [sender tag]; 

しかし、Interface Builderを使用して要素にアクションを接続するだけの理由はありますか? ここで使用しているUI要素は何ですか?

+0

これはすべてコード化されています...だからこそ。私はUIBarbuttonItemsとUIViewsを使用しています。さらに、上で説明したように、コードをフックすると、差別化をサポートしません。 – CodaFi

+0

私の最後のコメントをねじ、あなたも同様に動作します。 – CodaFi

関連する問題