两个按钮,一键

时间:2013-08-07 21:12:33

标签: objective-c uibutton

我的笔尖上有两个按钮。我需要在敲击时按下它们,但只有顶部按钮才能执行其功能。有没有办法让顶部按钮告诉底部按钮在顶部按钮被按下时激活。我不认为我可以将按钮合并为一个并使用一个 - (IBAction)buttonName函数,因为一个按钮比另一个按钮大,所以当按下其中一个按钮时,我并不总是需要两个按钮激活。

谢谢!

2 个答案:

答案 0 :(得分:3)

  

顶部按钮是否有办法告诉底部按钮   当顶部按下时激活。

不是,但你可以让顶部按钮的动作调用底部按钮的动作。

这是一种方式:

- (IBAction)actionTop:(id)sender
{
    NSLog(@"The top button was activated.");
    [self actionBottom:self];
}

- (IBAction)actionBottom:(id)sender
{
    NSLog(@"The bottom button was activated.");
}

另一种方法是对两者使用相同的操作,并根据触发操作的按钮找出要做的事情:

- (IBAction)action:(id)sender
{
    // if the top button was tapped, do this part
    if (sender == self.topButton) {
        NSLog(@"The top button was activated.");
    }

    // you want the bottom button to be activated no matter which button was tapped, so
    // no need to check here...
    NSLog(@"The bottom button was activated.");
}

  

底部按钮是整个屏幕,它会更改显示的内容。   顶部按钮播放声音,除了有4个顶部按钮   播放不同的声音

似乎覆盖整个屏幕的隐形按钮可能是解决问题的错误方法。您可能会考虑使用附加到视图的手势识别器来触发更改。您的按钮操作可以调用手势识别器使用的相同方法。

答案 1 :(得分:2)

由于一个按钮比另一个按钮大,我假设您希望较小的按钮用它“降低”较大的按钮,包括视觉状态的变化。在这种情况下你可以send your target button a "tap" programmaticall y,像这样:

- (IBAction)largeButtonClick:(id)sender {
}

- (IBAction)smallButtonClick:(id)sender {
    // Perform the acton specific to only the small button, then call
    [largeButton sendActionsForControlEvents:UIControlEventTouchUpInside];
}