UIToolbar中的UIBarButtonItem内的自定义UIButton。 TouchDown事件未在第一个按钮上调用

时间:2015-09-12 12:21:53

标签: ios objective-c uibutton uibarbuttonitem uitoolbar

我有一个空的UIToolbar,在其中我以编程方式创建两个包含UIButton子视图的UIBarButtonItem。这些UIButton由UILabel组成:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addSubview:ackButtonLabel];
[btn setFrame:CGRectMake(0, 0, ackButtonLabel.frame.size.width, ackButtonLabel.frame.size.height)];
[btn addTarget:self action:@selector(didPressAck:) forControlEvents:UIControlEventTouchUpInside];

[btn addTarget:self action:@selector(didTapDown:) forControlEvents:UIControlEventTouchDown];
[btn addTarget:self action:@selector(didTapDownCancel:) forControlEvents:UIControlEventTouchCancel | UIControlEventTouchUpOutside];

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithCustomView:btn];

[newItems addObject:myButton];

然后我添加了一个代码完全相同的第二个按钮,引用了一个不同但相同的标签,并将它们全部添加到工具栏中。

当显示时,它看起来像这样

enter image description here

这就是我想要的。然而,当我点击按钮并将手指放在同一个地方时...左手按钮不会触发TouchDown事件,但右手按钮会触发。当手指轻微移动时会触发事件,但是当手指保持静止时则不会触发。在模拟器中,行为不会发生,单击并按住任一按钮都可以正常工作以触发事件。如果我将标签换成圆形,它只发生在左边一个。

有什么想法吗? Apple bug?

0 个答案:

没有答案