objective-c - 动态按钮选择

标签 objective-c ios uibutton

假设我有两个按钮是ivar outlets。一个称为“蓝色”,另一个称为“红色”。现在,我有一个值为“Red”的 NSString。我想将 NSString 标识的按钮设置为 selected 状态,而不使用 if

不想这样做:

NSString *button=@"Red";
if ([button isEqualtoString:@"Blue")
   self.blue.selected=YES; //self.blue and self.red are UIButtons
else
   self.red.selected=YES;

如果你有两个按钮,这很好,但我有很多,如果有 30 个按钮,这样做会很不优雅和麻烦。

我更愿意找到一种方法将 UIButton ivar 的名称直接链接到 NSString 的值。

最佳答案

将字符串小写和 你可以使用 KVC为此:

[self setValue:[NSNumber numberWithBool:YES]
    forKeyPath:[NSString stringWithFormat:@"%@.selected", button]];

关于objective-c - 动态按钮选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669281/

相关文章:

objective-c - 如何防止 dispatch_group 卡住?

ios - AFNetworking 500 响应正文

iphone - 无法在 NSMutableArray obectatindex 中添加

ios - UIButton 在 ScrollView 上不可点击

iphone - UIButton 的 IBAction 方法在 Swift 中延迟后执行

iOS UIButton 标题在 UITableViewCell 中不断恢复

iphone - UITableview 部分可编辑

ios - 我如何判断 SKEmitterNode 何时达到其最大粒子数?

ios - 我在哪里可以一个一个地购买 iOS 标签栏图标?

iphone - 保存和检索图像使应用程序运行缓慢