我有一个UIButton
我附加了一个UIControlEventTouchUpInside
动作。此按钮插入到UIScrollView
.
我的问题是:触摸事件在我按住按钮一段时间后才会起作用。如果我直接点击它,或者只是在模拟器中点击它,它就不起作用。
问题是:当我点击它时,pointInside:withEvent:
实际上被触发并返回YES
。什么可能阻止事件被触发?
我有一个UIButton
我附加了一个UIControlEventTouchUpInside
动作。此按钮插入到UIScrollView
.
我的问题是:触摸事件在我按住按钮一段时间后才会起作用。如果我直接点击它,或者只是在模拟器中点击它,它就不起作用。
问题是:当我点击它时,pointInside:withEvent:
实际上被触发并返回YES
。什么可能阻止事件被触发?
尝试将delaysContentTouches
scrollView 的属性设置为NO
.
它应该可以工作,因此您可以检查以下内容,例如:
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)在设备上测试它,而不仅仅是在模拟器中。我在模拟器中体验到与在真实设备上不同的滚动/按钮按下行为(这对于测试这一点更好)。