我一直在玩这个代码,但不能正确的。UIScrollView与UIButton和UITapGestureRecognizer
当前行为:即使在点击按钮时,我也可以在UIScrollView上自由滚动。当我点击某个不是按钮的东西时,它会调用一个方法(就像我想要的那样),作为UITapGestureRecognizer的结果。但是,我必须按住按钮几秒钟,然后触摸它来触发按钮的UIControlEventTouchUpInside。
我想要发生的事情:完全一样,但能够轻松触及UIButton,就像我可以关闭位于视图上的UITapGestureRecognizer一样。
这里是我的代码:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//...
[cell.xButton addTarget:self action:@selector(xButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.delaysContentTouches = YES;
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
[self addGestureRecognizer:tapGestureRecognizer];
tapGestureRecognizer.delegate = self;
}
}
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer
{
[self.header removeKeyboard];
}
这与我上面的代码结合,现在意味着任何触及UIButton的结果都会直接按下它。我想这很像iPhone跳板,在uiscrollview上有uibutton,但在滚动时触摸它们并没有直接的效果。 – Andrew 2012-04-14 14:12:40