2015-05-03 45 views
1

是否可以将几个控件/按钮包装到一个按钮中,其中所有按钮都反应(高亮/不高亮)以按下任何元素,并且都共享相同的操作?将几个UIButtons分组到一个按钮中

我想要一个按钮的多个“零件”(主要是标签和图标),我可以单独控制布局,但是我希望它们的行为都像一个按钮,并突出显示所有零件窃听。

也许我可以跟踪每个按钮的按下状态,并使所有其他组件具有相同的状态?

+0

将它们连接到相同的IBAction并在Inteface Builder中给出标签。然后m在这些标签上使用switch case语句?我想我误解了你的问题? –

回答

1

您可以将小点拖动到视图中的多个按钮,并且所有这些按钮都将运行相同的IBAction代码。

IBAction Connector

如果你想区分它们,你可以在Interface Builder中使用标签,然后在这些标签与[sender tag]

Tag

调用,这样你的IBAction为可能看起来有点像这样:

- (IBAction)button_myButtonWasPressed:(id)sender { 

    if ([sender tag] == 0) { 
     // This will run for button tag 0 
    } 

    if ([sender tag] == 1) { 
     // This will run for button tag 1 
    } 
} 
+0

谢谢。尽管如此,我更感兴趣的是他们都聚焦在一起。任何想法如何实现? – devios1

+1

我会把你的按钮放在一个数组中,然后使用快速枚举循环来运行'[buttonAtIndex setSelected:YES];'在每个按钮上(其中'buttonAtIndex'是你在for-in循环中声明的)。您可以在IBAction中的第一个if语句之上执行所有操作,并且每按一次按钮即可运行到与该IBAction相关的任何按钮。 – Cole

+0

真棒,我会给它一个镜头! – devios1