【发布时间】:2011-11-05 23:58:25
【问题描述】:
我有一个典型的要求,我需要在按下按钮后保持按钮处于突出显示状态。我需要执行一项仅在按钮处于突出显示状态时才有效的任务。实际上,我正在以编程方式将按钮状态设置为突出显示。
[sender setHighlighted:YES];
一旦按钮处于突出显示状态,我需要执行另一个操作。
- (IBAction)changeState: (UIButton*)sender
{
if (sender.highlighted == YES)
{
[self performSomeAtion:sender];
}
}
但是,令我恐惧的是,每当我按下任何按钮时,上述条件都会变为 true,并且该操作正在重复执行。有什么方法可以让 UIButton 的状态在按下后保持突出显示?
编辑 - 实际上我需要为按钮的 3 种不同状态执行 3 种不同的操作。我已经在使用选定状态和正常状态。现在,我需要利用高亮状态。
【问题讨论】:
-
您可以设置一个 BOOL 变量,一旦执行操作,该变量将更新为 TRUE。
-
但我需要将按钮设置为突出显示状态,除非我再次更改它,否则它必须保持突出显示状态..
-
仅适用于 ios 7,您应该考虑将图像 renderMode 设置为 UIImageRenderingModeAlwaysTemplate,然后使用 Tint 颜色来表示各种状态。见stackoverflow.com/questions/19802982/apply-tintcolor-to-uiimage
标签: ios cocoa-touch uikit uibutton