单击 Xcode 4.3.3 时保持 A 按钮突出显示

Posted

技术标签:

【中文标题】单击 Xcode 4.3.3 时保持 A 按钮突出显示【英文标题】:Keep A button highlighted when clicked Xcode 4.3.3 【发布时间】:2012-07-23 05:53:18 【问题描述】:

我有一个应用程序需要某个按钮在按下时保持突出显示。此按钮在按下时应保持突出显示,以通知用户特定页面已添加到收藏夹。并且可以解压。 有什么想法吗?

【问题讨论】:

【参考方案1】:
    [yourButton setImage:[UIImage imageNamed:@"normalState.png"] forState:UIControlStateNormal];
    [yourButton setImage:[UIImage imageNamed:@"highlightedState.png"] forState:UIControlStateSelected];
    [yourButton setImage:[UIImage imageNamed:@"highlightedState.png"] forState:UIControlStateSHighlighted];

设置此图像首选项以及您想要调用的任何时间

 [yourButton setSelected:YES];

这会将您的按钮更改为突出显示状态。您可以通过这样做将其更改为正常

 [yourButton setSelected:NO];

希望这会有所帮助!

【讨论】:

【参考方案2】:

上面的答案一切都很好,除了错字,这可能会导致问题.. UIControlStateSHighlighted 应该是 UIControlStateHighlighted

这里有更多例子

http://www.guyford.co.uk/showpage.php?id=279&page=XCode_IPhone_/_IPad_Development_-_Highlighting_a_Button_and_setting_its_image.

【讨论】:

感谢您的回复 .. 我一开始实施就注意到了 :) 但感谢您的贡献【参考方案3】:

是的,只需为按钮保留一个图像以显示高亮状态,就像这样。

[myBtn setImage:@"highlightedImage.png" forState:UIControlStateHighlighted];

现在,在按钮检查高亮版本和普通版本的方法中

-(IBAction) startWorkoutClicked:(id)sender

     if(btnStart.highlighted)
     
         btnStart.highlighted = NO; //btn changes to normal state
     
     else
     
         btnStart.highlighted = YES; //btn changes to highlighted state 
      

【讨论】:

问题:这个解决方案是否仍然允许应用程序自动识别图像的视网膜版本? (即“highlightedImage@2x.png”)或者我们是否必须嵌套另一个 if/else 来解决它? 是的,这也可以处理视网膜图像。实际上,您永远不必处理视网膜图像。这始终由 ios 管理,并且取决于它在哪个设备上运行。 抱歉跳到这里我应该把这段代码的第一部分放在哪里? @DanDavies 无论您在何处编写代码以初始化按钮。或者,如果按钮在 xib 中,则将其写入 viewdidload 或您为更改 UI 所做的任何常用函数。

以上是关于单击 Xcode 4.3.3 时保持 A 按钮突出显示的主要内容,如果未能解决你的问题,请参考以下文章

单击第一个按钮时,它变为突出显示,单击第二个,第二个突出显示,第一个变为正常

Unity UI Button 具有疯狂的过渡状态行为 - 单击后仍保持突出显示

当我添加平移手势识别器时,我的按钮不会保持突出显示?

React Native TextInput 抓取突出显示的文本,并在我点击离开时保持突出显示

强制从饼图中取消选择切片

选择其他按钮时,ListView 突出显示所选项目颜色不会保持不变