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