14

UIButtonを設定し、通常どおりViewControllerのアクションに接続しました。これだけでも問題なく動作します。

ここで、ビューコントローラに次のものを追加して、シングルタップを設定しました。

- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer * singleTapGesture = [[UITapGestureRecognizer alloc] 
                                             initWithTarget:self
                                             action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleTapGesture];
[singleTapGesture release]; }

これで、ボタンをタップするたびにタップされたように見えますが、ボタンアクションの代わりにジェスチャ認識コードが起動されます。

ボタンをタップしたときにボタンが機能し、ビュー内の他の場所をタップしたときにタップジェスチャが機能するようにするにはどうすればよいですか?

4

3 に答える 3

13

あなたの問題は、うまくいけば答えられたこの質問に似ています;)

UITapGestureRecognizerを持つビュー内のUIButton

于 2011-01-21T17:58:31.507 に答える
12

これが簡単な解決策です

singleTapGesture.cancelsTouchesInView = NO;
于 2013-04-22T16:43:44.723 に答える
1

アンドリュー、

ユーザーがUIオブジェクト以外の場所をタップしたときに関数を呼び出したいようです。

したがって、私の提案は、画面サイズ(灰色のバーが表示されていると仮定して320x460)のカスタムボタンを作成し、IB内のすべてのオブジェクトの後ろに配置することです。この時点で、不透明度がほぼ0%のUIButtonが表示されるようになります。

IBから、カスタムボタンのセレクターオプションをファイル所有者にドラッグし、呼び出したい関数を選択すると、すべて完了です。

コードで試みていたものよりも単純です

于 2011-01-10T05:34:57.457 に答える