单击 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 具有疯狂的过渡状态行为 - 单击后仍保持突出显示