自定义,无图像UIButton标题消失

时间:2013-04-21 11:13:03

标签: iphone ios objective-c xcode uibutton

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

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

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

这个也没有帮助

4 个答案:

答案 0 :(得分:4)

UIButton及其子类有4种状态,可以通过IB中的代码或阶段配置进行更改

  1. normal
  2. highlighted
  3. selected
  4. disabled
  5. 在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设置,并且不会针对不同配置进行更新(请参阅下面的图片)。

默认州名
Default Title

突出显示的州名
Highlighted Title