我有一个按钮,当我按下它时,它不会触发我添加的目标选择器。我制作了不同的图片按钮,所以我可以看到我在按下它。除非我在外面拖动,否则UIButton不会在touchUpInside上触发目标?
所以这里是滑稽如果我按下,并拖出按钮的外部,但不是在按钮的直接superView之外,目标选择器被激发!
我也在测试中设置setClipsToBounds:YES在所有超级/子视图上,以确保它仍然在视图边界中。似乎处于界限之内。在按钮区域外拖动似乎是全方位的,所以它不像我只能点击/拖动右边。也上下工作。我可以点击,然后拖出来,然后运行。如果我没有开始拖动,只需轻按并按住,该按钮将突出显示,然后返回到未选中状态。
这里是按钮的代码。该按钮与UITextView一起位于UIView上,实际上是UITextView的onTop。 UIView的,所有这一切是在上大图,这是一个缩放/滚动视图
messageLookupButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 21, 20)];
[messageLookupButton setTitle:@"junk" forState:UIControlStateNormal];
[messageLookupButton sizeToFit];
[messageLookupButton setTag:kGearButtonView];
//Get the images for the buttons
UIImage *gearButtonImage = [UIImage imageNamed:@"gear.png"];
UIImage *gearButtonImage2 = [UIImage imageNamed:@"StatusLightOn.png"];
[messageLookupButton setImage:gearButtonImage forState:UIControlStateNormal];
[messageLookupButton setImage:gearButtonImage2 forState:UIControlStateHighlighted];
[messageLookupButton addTarget:self action:@selector(gearPressed:) forControlEvents:UIControlEventTouchUpInside];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(processLookupResults:)
name:kRefreshFromPopover object:nil];
[self addSubview: messageLookupButton ];
[messageLookupButton release];
[messageLookupButton setCenter:CGPointMake(CGRectGetMaxX(elementViewContents.bounds) -kElementContentFrameOffset -(CGRectGetWidth(messageLookupButton.bounds)/2), CGRectGetMidY(elementViewContents.bounds))];
[self bringSubviewToFront:messageLookupButton];
滚动视图上有几个手势识别。尽管它们似乎不会干扰我放在屏幕上的其他按钮和控件。虽然我感觉它的滚动视图是问题所在。
滚动视图代码片段:
[scrollContentView setUserInteractionEnabled:YES];
[scrollContentView setExclusiveTouch:YES];
[scrollContentView setCanCancelContentTouches:YES];
[scrollContentView setDelaysContentTouches:YES];