Iphone UIButton-触摸时保持文本黑色
我有一个iPhone UIButton(自定义),它有一个背景图像和文本 触摸时,图像变暗(良好),但文本从设置的黑色变为白色Iphone UIButton-触摸时保持文本黑色,iphone,ios,uibutton,Iphone,Ios,Uibutton,我有一个iPhone UIButton(自定义),它有一个背景图像和文本 触摸时,图像变暗(良好),但文本从设置的黑色变为白色 如何将文本保持为相同的黑色,以便在触摸按钮时,只有图像改变颜色。[button setTitleColor:[UIColor blackColor]对于状态:uicontrol状态高亮显示]大多数情况下,以下行可以: [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 如
如何将文本保持为相同的黑色,以便在触摸按钮时,只有图像改变颜色。
[button setTitleColor:[UIColor blackColor]对于状态:uicontrol状态高亮显示]
大多数情况下,以下行可以:
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
如果没有发生任何情况,则使用以下任一方法:
[button setTitleColor:[UIColor blackColor] forState:(UIControlStateSelected | UIControlStateHighlighted | UIControlStateNormal)];
或者这会起作用:
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
请参阅下面的评论,了解此答案被编辑/扩展以包括两行的原因。为什么接受此答案?这行不通。按下按钮只会打开高亮显示的状态。除非您明确指示按钮进入选定状态,否则按钮不会进入选定状态。这样,如果他明确指示按钮进入选定状态,则颜色将保持黑色。或者,他可以对UIButton进行子类化,并按照obj-c最初应有的方式实现所选状态=但这并不能解决最初的问题,即当他触摸按钮时,如何防止文本颜色变化。您的答案仅在选中并高亮显示按钮时设置文本颜色。。UIControl.h
UIControl状态高亮显示的定义=1否,仅当两种状态都设置时,它才使其变为黑色。仅仅因为使用按位OR组合它们并不能赋予“状态a或状态b”的含义。本质上,按位OR在本例中对应于逻辑AND。
okButton.titleLabel.textColor = [UIColor redColor];
[okButton addTarget:self action:@selector(isPressingForgetButton:) forControlEvents:UIControlEventTouchDown];
[okButton addTarget:self action:@selector(didPressForgetButton:) forControlEvents:UIControlEventTouchUpInside];
- (void) isPressingForgetButton:(id)sender
{
UIButton * bt = (UIButton *)sender;
bt.titleLabel.textColor = [UIColor greenColor];
}
- (void) didPressForgetButton:(id)sender
{
UIButton * bt = (UIButton *)sender;
bt.titleLabel.textColor = [UIColor redColor];
[self gotoUnblockView];
}