Ios 按住并拖动按钮时,无法移动包含按钮的UIScrollView

Ios 按住并拖动按钮时,无法移动包含按钮的UIScrollView,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我有一个UIScrollView,里面有按钮,当我试图按下按钮并向一侧滑动时,UIScrollView不会移动,但当我滑动得非常快时,它会移动。我正在按钮上使用UIControlEventTouchUpInside。这是我用来向滚动视图添加按钮的代码: -(void) setScrollView:(int) numberOfViews { for (int i = 0; i < numberOfViews; i++) { CGFloat xOrigin = i *

我有一个
UIScrollView
,里面有按钮,当我试图按下按钮并向一侧滑动时,
UIScrollView
不会移动,但当我滑动得非常快时,它会移动。我正在按钮上使用
UIControlEventTouchUpInside
。这是我用来向滚动视图添加按钮的代码:

-(void) setScrollView:(int) numberOfViews {
    for (int i = 0; i < numberOfViews; i++) {
        CGFloat xOrigin = i * 40;
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button addTarget:self
                   action:@selector(scrollViewButtonClicked:)
         forControlEvents:UIControlEventTouchUpInside];
        [button setTitle:[NSString stringWithFormat:@"%d",i] forState:UIControlStateNormal];
        button.frame = CGRectMake(xOrigin, 0, 40, 40);
        button.tag = 1000+i;
        button.backgroundColor = [self getColorForSound:self.sounds[i]];
        [button setExclusiveTouch:YES];
        [self.soundsScrollView addSubview:button];
}
}
-(void)setScrollView:(int)NumberOfView{
对于(int i=0;i

即使用户按下按钮并尝试滚动,如何使
UIScrollView
滚动?

这是出于设计。从概念上讲,只有一个视图应该处理触摸事件。当您触摸按钮时,仅处理与按钮相关的处理(例如,按下按钮)。按钮和滚动视图不能同时处理触摸事件。一旦在按钮中启动触摸事件,按钮“拥有”该触摸,因此滚动视图无法对其进行处理


滑动“非常快”时,滚动视图确实会移动的原因是滚动视图首先检查触摸事件,因为它是按钮的父视图。如果触摸事件没有“移动”,它会将其传递给子视图(在本例中是您的按钮),以查看它们是否可以处理它。但是,如果滚动视图在按钮有机会处理触摸事件之前检测到触摸正在移动,则滚动视图将获得触摸事件的所有权,并对其进行滚动处理。

您是否尝试过在按钮内部使用触摸拖动?“触动”可以触发当前动作,而“触动-拖动”可以做你想做的事情。@Calvinbai这不起作用。我需要将其滚动到一边,但这没有帮助。@Amar的可能副本将可取消内容设置为“是”的答案对我不起作用。@BlueGene也,检查已接受答案评论中给出的链接。问题是,当我在iPhone上运行应用程序并滑动手指时,它将正常工作,而在模拟器中它不工作的原因是因为我使用鼠标并按下,或者它会在iPhone中保持这种方式?