0

我有一个UIButton我附加了一个UIControlEventTouchUpInside动作。此按钮插入到UIScrollView.

我的问题是:触摸事件在我按住按钮一段时间后才会起作用。如果我直接点击它,或者只是在模拟器中点击它,它就不起作用。

问题是:当我点击它时,pointInside:withEvent:实际上被触发并返回YES。什么可能阻止事件被触发?

4

2 回答 2

0

尝试将delaysContentTouchesscrollView 的属性设置为NO.

于 2013-03-18T22:50:33.517 回答
0

它应该可以工作,因此您可以检查以下内容,例如:

1)确保您的按钮已正确添加到滚动视图。例如像这样:

    ...
    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)确保该按钮位于视图堆栈的顶部。出于测试目的,在视图初始化代码的末尾添加 [mybutton bringSubviewToFront];

3)在设备上测试它,而不仅仅是在模拟器中。我在模拟器中体验到与在真实设备上不同的滚动/按钮按下行为(这对于测试这一点更好)。

于 2013-03-18T23:01:26.933 回答