请原谅,我正在使用UIButtons在我的iPhone应用程序中创建一个自定义标签栏。一切都很美妙,除了当我点击并按住按钮时,它不会选择它,直到我释放它。这真的让我烦恼,因为在触地时选择了一个标准的UITabBarItem,它只是感觉不对。
我已将IBAction设置为“Touch Down”,我的代码非常简单。我做错了吗?
-(IBAction)tab1Pressed:(id)sender
{
if (self.tab1.selected == NO) {
self.tab1.selected = YES;
self.tab2.selected = NO;
}
}
答案 0 :(得分:3)
有一个解决方案!为每个UIButton添加了UILongPressGestureRecognizer,而不是使用IBActions。工作就像一个魅力!
在viewDidLoad中:
tapAndHold = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapAndHold)];
[tapAndHold setMinimumPressDuration:0.01];
[self.myTabBarButton addGestureRecognizer:tapAndHold];
[tapAndHold release];
答案 1 :(得分:2)
您应该为按钮使用其他事件。默认的是“内部触摸”。释放按钮时会触发该操作。
使用“触地”应该做你想做的事。
答案 2 :(得分:1)
您可以尝试子类化UIView并实现touchesBegan:withEvent:方法。