UIButton 高亮设置不会粘住
Posted
技术标签:
【中文标题】UIButton 高亮设置不会粘住【英文标题】:UIButton highlight setting won't stick 【发布时间】:2011-06-23 14:09:02 【问题描述】:这里肯定有很多 UIButton 问题,我希望找到这个问题的答案,但没有什么比这个特定问题更重要了。
我有几个按钮,当程序运行并突出显示时,我可以为任何按钮调用button.highlighted = YES;
。
我想我可以使用相同的技术在按下按钮后将其高亮状态设置为“是”,然后在按下另一个按钮后将其设置为“否”。这样,当前选择仍然突出显示。
例如:
-(IBAction) buttonPressed:(UIButton *)button
if (button.tag==1)
self.button1.highlighted=YES;
self.button2.highlighted=NO;
// do other program stuff here
if (button.tag==2)
self.button2.highlighted=YES;
self.button1.highlighted=NO;
// do other program stuff here
即使我将 highlighted = YES;
代码放在 viewDidLoad 中,高亮显示也能正常工作。但是上面的代码不起作用。亮点不粘。按钮可以正常工作,并且可以执行其他需要执行的操作,但高亮显示无法粘贴。
我认为这应该是非常基本的。在任何按钮操作之后,ios 是否会以某种方式自动将所有按钮高亮设置为 NO?
【问题讨论】:
确保您在 viewDidLoad 中的第一个调用是[super viewDidLoad]
您所说的“亮点工作正常,没有自己的”是什么意思?您的问题是要设置一个在视图出现时突出显示的按钮吗?
我的意思是,在按钮按下的上下文之外,突出显示设置工作正常,例如当它被放置在 viewDidLoad 中时,按钮突出显示。但在按钮操作中,高亮设置什么都不做。
所以我完全误解了你。我认为它在 viewDidLoad 中不起作用。也许您的 IBAction 没有被调用。
该操作被调用,并在 if
语句中执行它需要执行的所有其他操作。但亮点本身什么都不做。
【参考方案1】:
由于UIControl
的文档中的声明,您可能应该使用其他方式来呈现突出显示状态:
默认情况下,控件不是 突出显示。 UIControl 自动 设置和清除此状态 当触摸进入时自动 在跟踪期间退出以及何时退出 是修饰。
【讨论】:
我想知道这是否意味着 UIControl 会影响所有按钮的所有突出显示状态,即使您只触摸其中一个按钮也是如此;因为这就是我的经历。我怀疑我需要做类似的事情:forums.macrumors.com/showthread.php?t=530998 虽然当你想要做的只是操纵一个亮点时,这样做很可惜 果然,通过使用selected
属性而不是highlight
并且只需更改所选状态的背景图像和标题文本颜色,它就像一个魅力。【参考方案2】:
您可以尝试使用“selected”属性而不是“highlighted”属性。
【讨论】:
以上是关于UIButton 高亮设置不会粘住的主要内容,如果未能解决你的问题,请参考以下文章