【发布时间】:2012-02-28 23:47:26
【问题描述】:
我有一个按钮,当我按下它时,它不会触发我添加的目标选择器。我已经制作了按钮不同的图像,所以我可以看到我正在按下它。
如果我按下按钮并拖动到按钮的外部,而不是按钮的直接 superView 之外,那么这里是有趣的,目标选择器被触发!
我还在测试中在所有超级/子视图上设置了 setClipsToBounds:YES,以确保它仍在视图范围内。似乎在界限之内。按钮区域外的拖动似乎是全方位的,所以它不像我只能点击/向右拖动。上下工作也一样。我可以点击,拖出然后重新进入,它可以工作。如果我没有开始拖动,只是点击并按住,按钮会突出显示,然后返回未选中状态。
这是按钮的代码。 Button 与 UITextView 一起位于 UIView 上,实际上位于 UITextView 的顶部。所有这些都在的 UIView 位于更大的 View 上,它位于 Scaling/Scrolling 视图上
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];
【问题讨论】:
标签: objective-c uiview uiscrollview uibutton selector