【发布时间】:2012-07-30 03:01:30
【问题描述】:
我有一个带有许多 UIButtons 的 uiviewcontroller,这些 UIButtons 旨在被选中并保持按下直到再次被触摸。我在 viewDidLoad 中定义了每个按钮,并为它们提供了相同的选择器方法(tapButton):
[button1 addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
[button2 addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
...
我想做的是在 tabButton: 方法中,使用选择器来确定按下了哪个按钮,然后使用以下内容更改其状态:
- (IBAction) tapButton:(id)sender
{
if ( sender.selected ) {
sender.highlighted = NO;
sender.selected = NO;
} else {
sender.highlighted = YES;
sender.selected = YES;
}
}
您会注意到这只是一个伪代码,因为我不能真正执行“sender.selected”或“sender.highlighted”,但这就是我想要完成的。
有什么方法可以做到这一点吗?我不想创建 30 个“tapButton”方法(这就是我拥有的 UIButton 的数量,是的……)来管理每个 UIButton 的状态。
非常感谢!
【问题讨论】:
-
你为什么不能
sender.selected或sender.highlighted??它们是有效的......这正是 sender 参数的用途(它是按下的按钮) -
我希望我能做到这一点,但我遇到了错误......这会让我的生活变得更轻松!
-
“错误”...对你的描述非常好。也许您的问题应该是关于这些错误?我一直以这种方式切换选择。
-
不,您可以自动更改的唯一内容是标题、标题字体颜色、标题字体阴影颜色、图像和背景图像。其他任何事情都必须手动完成。
-
您是否已经尝试过以下操作:stackoverflow.com/questions/3300534/…
标签: iphone objective-c ios xcode uibutton