首页 文章

自定义,无图像UIButton Headers 消失

提问于
浏览
0

我在XIB中创建了一个没有图像的自定义UIButton . 单击该按钮时, Headers 消失 .

这些答案对我没有帮助,因为我没有任何可以与文本重叠的图像

这也没有帮助,因为我没有任何背景颜色

这一点也没有帮助

4 回答

  • 1

    在XIB中,您可以通过更改 State Config 然后设置相应状态的 Headers 来为每个不同状态设置 Headers . 在下面的示例中,我将 Default 状态 Headers 设置为 Title ,将 Highlighted 状态 Headers 设置为单个空格,这使其在应用程序中显示为空白 . 但请注意,预览仅显示 Default 设置,并且不会针对不同配置进行更新(请参见下图) .

    Default State Title

    Default Title

    Highlighted State Title

    Highlighted Title

  • 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;
    

    如果将“ 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个按钮,并知道它如何显示 .

  • 1

    我也遇到过这种情况 . 我认为问题是,因为按钮默认是一个带有按钮默认“高亮”状态的白色圆角按钮,并在按下按钮时反转文本颜色,它与自定义按钮相同 . 现在,因为文本是蓝色的,并且背景是白色的圆形按钮,所以在自定义按钮中它是完全相同的 . 自定义按钮的文本将是您想要(设置)它的任何内容 . 背景通常也是透明的颜色,因为当自定义按钮突出显示时,它会导致文本颜色被反转,就像常规按钮一样 . 这会导致文本颜色变得透明,并且自定义按钮的背景不会改变,因为没有任何内容可以更改,因此按钮是自定义的(这意味着您必须设置突出显示状态和其他属性)按钮) . 我以前曾经遇到过这种情况,之前我从未真正意识到这一点,但我希望这可以帮到你!

  • 1
    // for setting text in normal state
    
    [_myButton setTitle:@"myText" forState:UIControlStateNormal];
    
    
    // show another text on touch
    
    [_myButton setTitle:@"myText" forState:UIControlStateHighlighted];
    

相关问题