我在XIB中创建了一个没有图像的自定义UIButton。单击该按钮时,标题消失。
这些答案对我没有帮助,因为我没有任何可能与文字重叠的图像
这也没有帮助,因为我没有任何背景颜色
这个也没有帮助
答案 0 :(得分:4)
UIButton及其子类有4种状态,可以通过IB中的代码或阶段配置进行更改
normal
highlighted
selected
disabled
在UIKit框架中检查UIButton.h,您将看到如何使用它们:
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
如果将标题,图像或backGroundImage设置为正常状态,则其他状态的默认状态与普通状态相同。
默认状态为Normal,可以设置其他状态:
[button setHighlighted:YES];
[button setSelected:YES];
[button setEnable:NO];//disable state
按钮在点击时从正常更改为突出显示,因此如果您想保持正常的标题,请检查:
- 不要将setImage或config image用于普通和高亮状态(只需使用backgroundImage)
-Don'tsetTitle:@“”forState:UIControlStateHighlighted或config to IB中没什么。 -Don'titTitleColor或在IB中选择与UIButton backgroundColor相同的titleColor。
您可以使用4个不同的标题和backGroundImages进行1个按钮测试,并知道它是如何显示的。
答案 1 :(得分:1)
我也遇到过这种情况。我认为问题是,因为按钮默认是一个带有按钮默认“高亮”状态的白色圆角按钮,并在按下按钮时反转文本颜色,它与自定义按钮相同。现在,因为文本是蓝色的,并且背景是白色的圆形按钮,所以在自定义按钮中它是完全相同的。自定义按钮的文本将是您想要(设置)它的任何内容。背景通常也是透明的颜色,因为当自定义按钮突出显示时,它会导致文本颜色被反转,就像常规按钮一样。这会导致文本颜色变得透明,并且自定义按钮的背景不会改变,因为没有任何内容可以更改,因此按钮是自定义的(这意味着您必须设置突出显示状态和其他属性)按钮)。我以前曾经发生这种情况,之前我从未真正意识到这一点,但我希望这可以帮助你!
答案 2 :(得分:1)
// for setting text in normal state
[_myButton setTitle:@"myText" forState:UIControlStateNormal];
// show another text on touch
[_myButton setTitle:@"myText" forState:UIControlStateHighlighted];
答案 3 :(得分:1)
在XIB中,您可以通过更改State Config
然后设置相应状态的标题来为每个不同状态设置标题。在以下示例中,我将Default
州标题设置为Title
,将Highlighted
州标题设置为单个空格,这使其在应用中显示为空白。但请注意,预览仅显示Default
设置,并且不会针对不同配置进行更新(请参阅下面的图片)。
默认州名
突出显示的州名