Ios UI按钮切换功能动作怪异
我尝试用UIButton创建菜单,我只想一次只能选择一个按钮。Witch意味着当我选择一个按钮时,它会自动取消选择另一个按钮。但这很奇怪,我不明白为什么 当我从菜单中选择一个按钮时,它变为红色,当我选择另一个按钮时,它们都是红色的,但我必须在第一个按钮上单击两次,使其变为黑色,第二个按钮也是一样。问题是当我点击第二个按钮时,第一个按钮应该变成黑色而不是保持红色 使用addTarget按下按钮时调用此函数Ios UI按钮切换功能动作怪异,ios,uibutton,toggle,selected,Ios,Uibutton,Toggle,Selected,我尝试用UIButton创建菜单,我只想一次只能选择一个按钮。Witch意味着当我选择一个按钮时,它会自动取消选择另一个按钮。但这很奇怪,我不明白为什么 当我从菜单中选择一个按钮时,它变为红色,当我选择另一个按钮时,它们都是红色的,但我必须在第一个按钮上单击两次,使其变为黑色,第二个按钮也是一样。问题是当我点击第二个按钮时,第一个按钮应该变成黑色而不是保持红色 使用addTarget按下按钮时调用此函数 - (void)putInSelectedMode:(id)sender {
- (void)putInSelectedMode:(id)sender {
NSLog(@"[%d] %s => %s", __LINE__, __FUNCTION__, __FILE__);
if ([sender isKindOfClass:[UIButton class]]) {
sender = (UIButton*)sender;
if ([sender isSelected])
{
[sender setSelected:NO];
[[sender layer] setShadowColor:[[UIColor clearColor] CGColor]];
[[sender layer] setBorderWidth:0.0f];
}
else {
UIButton *btn = nil;
NSArray *subviews = [self subviews];
for (btn in subviews) {
if ([btn isKindOfClass:[UIButton class]]) {
[btn setSelected:NO];
}
}
[[sender layer] setBorderWidth:5.0f];
[[sender layer] setBorderColor:[[UIColor redColor] CGColor]];
[[sender layer] setOpaque:NO];
[sender setSelected:YES];
}
}
}
为什么不使用UISegmentedControl?另外,您应该澄清您的代码“行为怪异”的方式。因为我不认为使用UISegmentedControl是个好建议……七年后我也遇到了同样的问题。为什么不使用UISegmentedControl?此外,您应该澄清您的代码“行为怪异”的方式.因为我不考虑UISegmentedControl,这是一个很好的建议…七年后我也遇到了同样的问题。