UIButton 选择时更改颜色标题,如何关闭它?

我创建了一个按钮。 默认颜色标头黑色。 但是当我点击她时,颜色变化为一点蓝色,永远不会更换更多,它如何发生? 有人能告诉我为什么? 我想要所有剩余黑色按钮的名称。 我怎样才能做到这一点? 我试过了


[button setTitleColor:[UIColor darkTextColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor darkTextColor] forState:UIControlStateSelected];


但没有效果。 当我将它添加到我的代码时,似乎按钮的标题始终是蓝色的。

代码是下一步。


UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake/20, 360, 280, 44/];
[button setTitle:NSLocalizedString/@"Continue", @"Label: TextLabel in Continue button"/ forState:UIControlStateNormal];
button.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
button.titleLabel.textColor = [UIColor darkTextColor];
button.titleLabel.shadowColor = [UIColor blackColor];
button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth;

[self.view addSubview:button];
[button release];


谢谢大家。 我解决了这个问题。 我认为主要原因是

在下面的


button.titleLabel.textColor = [UIColor darkTextColor];


当我删除它并使用时


button setTitleColor:/UIColor/ forState:/UIControlState/;


问题已经解决了!
已邀请:

君笑尘

赞同来自:

您可以使用

[UIButton setTitleColor:forState

:]

对于所有状态,所有状态的标题颜色将保持不变。


[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateSelected];


Note:To 必须攻击以上的代码三次,您可以使用以下代码建议

,


[button setTitleColor:[UIColor redColor] forState:/UIControlStateHighlighted | UIControlStateNormal | UIControlStateSelected/];

冰洋

赞同来自:

如..所示 @null, 迄今为止,最简单的方法是设置按钮类型 Interface Builder /或者代码/ 在 "Custom".

如果您需要使用标准按钮重复此行为,请覆盖该方法
setHighlighted

, 防止alpha通道 titleLabel:


- /void/setHighlighted:/BOOL/highlighted
{
[super setHighlighted:highlighted];
self.titleLabel.alpha = 1.0;
}

窦买办

赞同来自:

0 跨码:

使用 Interface Builder 和
.XIB

或者
.storyboard

, 选择你的
UIButton

在 IB:

看法 > 公用事业 > 显示检查员归属

.


选择

State Config

/Default/ 作为之一

投入的

,

选择

或者

禁用

并修改属性

文本的颜色

.

帅驴

赞同来自:

有几个评论指向这一点,但为了使其作为实际答案:

设置按钮类型
Custom

措辞或代码:
[UIButton buttonWithType:UIButtonTypeCustom];

君笑尘

赞同来自:

要小心,系统忽略了 setTitleColor /_:for:/, 如果按钮不是类型 custom.

八刀丁二

赞同来自:

对于更可重复使用的东西,您可以考虑它,因为它没有违反原则 DRY. 将其添加为类别 UIButton.


- /void/oka_setTitleColor:/UIColor */color forStates:/NSArray */states;
{
[states enumerateObjectsUsingBlock:^/NSNumber *state, NSUInteger idx, BOOL *stop/ {
[self setTitleColor:color forState:[state integerValue]];
}];
}


您的案例的使用示例:


[self oka_setTitleColor:[UIColor darkTextColor]
forStates:@[@/UIControlStateNormal/, @/UIControlStateHighlighted/, @/UIControlStateSelected/]];

风见雨下

赞同来自:

我认为Majur是对的。 但你尝试了另一种颜色 "darkTextColor"?
http://developer.apple.com/lib ... .html
, "darkTextColor"- 这是一种特定的颜色系统,用于在浅色背景上写文本。 也许尝试 blackColor, 如果Maiura的报价不起作用。

Edit: 尝试添加:
[sender setHighlighted:NO];

在你的中 IBAction, 按下按钮时调用。 这解决了这个吗? 我建议因为
[button release];

我假设你还在使用旧版本 iOs SDK, 在那里,除了除外的优雅方式,您没有能够关闭按钮背光。

Edit2: 您创建了一个程序程序,但我没有看到你连接它 IBAction.
将其添加到您的下面
[[UIButton alloc] init];



[button addTarget:self action:@selector/myIBAction/ forControlEvents:UIControlEventTouchUpInside];


然后创建一种方法 IBAction 通过以下方式:


- /IBAction/myIBAction:/UIButton */sender; /* In Header File */

- /IBAction/myIBAction:/UIButton */sender{ /* In Implementation File */
[sender setHighlighted:NO];
}

要回复问题请先登录注册