我的水平UIScrollView
从UIScrollView
延伸,我水平添加了UIButtons
。我只能滚出按钮区域,但如果我想滚动任何按钮,则会触发UIControlEventTouchUpInside
事件。我不想要这个。我想点击UIControlEventTouchUpInside
动作,如果我点击我想滚动。
那么如何将滚动事件从UIButton
传递到UIScrollView
?
答案 0 :(得分:4)
UIScrollView子类,在- touchesShouldCancelInContentView:
方法中返回YES。
答案 1 :(得分:3)
该功能已经内置。当您将UIControl元素作为滚动视图的子视图并检测到触摸事件时,它最初会传递给UIScrollView。如果在一两分钟之后触摸事件中没有足够的移动,它会被传递到按钮。
答案 2 :(得分:0)
如果您继承NSButton并创建该类型的按钮并覆盖子类中的以下内容,则可以将事件传递回父视图,在您的情况下是滚动视图
以下内容将使按钮永远不会触发事件,而是所有内容都将由父视图处理:
- (void)touchesBegan: (NSSet *)touches withEvent:(UIEvent *)event {
[self.nextResponder touchesBegan:touches withEvent:event];
}
- (void)touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
[self.nextResponder touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event
{
[self.nextResponder touchesEnded:touches withEvent:event];
}
如果您想让按钮处理其中一个事件,请使用
[super touchesEnded:touches withEvent:event];
答案 3 :(得分:0)
试试这个:
self.button.exclusiveTouch = YES
对我来说就像一个魅力!