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

我在XIB中创build了一个没有图像的自定义UIButton。 当button被点击时,标题消失。

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

  • 按下button后,标题消失
  • iOS – 界面生成器:设置图像时,UIButton标题消失
  • 具有自定义背景的UIButton会丢失标题

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

  • UIButton标题消失

这一个也没有帮助

  • 每次按下button都会改变标题

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

默认状态标题
默认标题

突出显示的州标题
突出显示的标题

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

  1. normal
  2. highlighted
  3. selected
  4. 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 

button从正常更改为突出显示,所以如果你想保持正常的标题,请检查:

– 不要使用setImage或configuration图像的正常和高光状态(只使用backgroundImage)

– 不要setTitle:@“”forState:UIControlStateHighlighted或在IB中configuration为空。 – 不要setTitleColor或在IB中select与UIButton backgroundColor相同的titleColor。

你可以testing4个不同的标题和backGroundImages 1button,知道如何显示。

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

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