2013-07-16 55 views
0

所以我已经子类化一个UIButton,我添加到它的唯一方法是setTitle(我正在使用图标字体,所以我为通过图标表示的那些按钮创建了一个Icon_UIButton)。Subclassed UIButton失去了亮点

我有这样的代码:

Icon_UIButton* button = [[Icon_UIButton alloc] init]; 
[button setTitle:@"R"]; //R is a specific icon in my icon font 
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; 

这看起来像它的工作原理,但之后我设置一个按钮,使用选择:

[button setSelected:YES]; 

每当我点击并按住该按钮,它再次变黑。

这就像一个选定的Icon_UIButton忽略它的titleColor,当它被同时选中时,它是一个突出显示的状态。

有没有人遇到过这个?

+0

是的,这是一个已知的问题提出了几次这里,那里有几个补丁,你可以搜索或生病尝试,找到一个真正的快。 – rezand

+0

感谢您的回复@rezand我详尽地搜索了(感觉像),然后我空了。 – Adam

回答

0

好吧,我发现在这个线程正确回答我的问题:

Highlighted state for UIButton doesn't come when going from selected to normal state

我不想回答我的问题,但以防万一别人类型可能符合这个问题的搜索字词在谷歌,这里是答案(缩短,而是直接从其他线程):

还有一个UIControlState(或者更确切地说,控制状态的混合):

UIControlStateSelected | UIControlStateHighlighted 

所以,现在的代码如下所示:

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected | UIControlStateHighlighted];