Iphone UIButton';s所选状态在iOS7中不工作

Iphone UIButton';s所选状态在iOS7中不工作,iphone,ios,objective-c,xcode,uibutton,Iphone,Ios,Objective C,Xcode,Uibutton,我正在使用Xcode 5的故事板创建一个应用程序,iOS SDK 7.0 我把一个按钮拖到视图上。我希望我的按钮在默认情况下显示“A”。以下是按钮属性: 类型:系统,状态配置:默认,标题:普通 我希望我的按钮在选定状态下显示“B”。因此,按钮属性发生了变化: 状态配置:已选择 在按钮的属性检查器中,控件下有一个名为“选定”的属性。 如果我选中,而不是显示“B”,它只会像a上的标记一样高亮显示,即看不到任何字符 我用XCODE运行它。当未选择按钮时,“A”按预期显示,但当我选择按钮时,而不是显示B

我正在使用Xcode 5的故事板创建一个应用程序,iOS SDK 7.0

我把一个按钮拖到视图上。我希望我的按钮在默认情况下显示“A”。以下是按钮属性: 类型:系统,状态配置:默认,标题:普通

我希望我的按钮在选定状态下显示“B”。因此,按钮属性发生了变化: 状态配置:已选择

在按钮的属性检查器中,控件下有一个名为“选定”的属性。 如果我选中,而不是显示“B”,它只会像a上的标记一样高亮显示,即看不到任何字符

我用XCODE运行它。当未选择按钮时,“A”按预期显示,但当我选择按钮时,而不是显示B,按钮的文本部分用浅蓝色突出显示。而且,我从未选择控件下突出显示的内容


如何解决这个问题,以便我能正确显示状态?

您需要将按钮的标题设置为“B”,同时在情节提要中将状态配置设置为选中状态。然后,您需要将一个操作连接到按钮的内部润色事件。在该操作的内部,切换按钮的
selected
属性


当您在属性检查器下选中“Selected”时,您只是将按钮的初始选定状态设置为YES。XCode还显示了按钮在该状态下的外观。

我发现这是XCode 5中的一个错误,也就是说,当我们检查按钮控制下的selected属性时,它不会在按钮上显示selected状态。它在我们运行应用程序的模拟器中工作。我们需要为按钮执行目标操作,并切换所选状态,如下所示

 - (IBAction)flipButton:(UIButton *)sender {
      sender.selected=!sender.isSelected;
   }

对于通过代码设置按钮标题的任何人,我在iOS 7.1上发现,您需要为各种按钮状态显式设置标题,而在iOS 7.0上,为UIControlStateNormal设置标题也适用于其他按钮状态

// works on 7.0
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal];

// works on 7.1
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal|UIControlStateDisabled];

另外值得注意的是,您已经选择了Type:Custom,否则这些都不会产生任何影响。按钮是否应该自动更改为所选值?