0

アクションをUIButton付けたものがあります。UIControlEventTouchUpInsideこのボタンはに挿入されますUIScrollView

私の問題は、ボタンを一定時間押し続けるまでタッチイベントが機能しないことです。直接タップするか、シミュレーターでクリックするだけでは動作しません。

重要なのは、クリックするだけで、pointInside:withEvent:実際にトリガーされて返されるということYESです。イベントが発生するのを防ぐことができるのは何ですか?

4

2 に答える 2

0

delaysContentTouchesscrollViewのプロパティをに設定してみてくださいNO

于 2013-03-18T22:50:33.517 に答える
0

次の例を確認できるように機能するはずです。

1)ボタンがscrollviewに正しく追加されていることを確認します。たとえば、次のようになります。

    ...
    myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    myScrollView.bounces = NO;
    [myScrollView setScrollEnabled:YES];
    myScrollView.showsHorizontalScrollIndicator = NO;
    myScrollView.delegate = self;
    myScrollView.pagingEnabled = YES;
    [self.view addSubview:myScrollView];
    myScrollView.contentSize = CGSizeMake(320*5, 480);
    ...
    UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeCustom];
    mybutton.frame = CGRectMake(0,0,100,100);
    mybutton.tag = 1
    [mybutton addTarget:self action:@selector(pressedmybutton:) 
          forControlEvents:UIControlEventTouchUpInside];
    [myScrollView addSubview:bu];

2)ボタンがビュースタックの一番上にあることを確認します。テストの目的で、ビューの初期化コードの最後に[mybuttonbringSubviewToFront]を追加します。

3)シミュレーターだけでなく、デバイスでテストします。シミュレーターでは、実際のデバイスとは異なるスクロール/ボタン押下動作を経験しました(これは、これをテストするのに適しています)。

于 2013-03-18T23:01:26.933 に答える