Название UIButton исчезает - PullRequest
       3

Название UIButton исчезает

2 голосов
/ 16 февраля 2012

У меня есть ViewController с UIB-кнопкой внутри. Когда я нажал, текст на кнопке исчез. Я добавляю все setTitle для всех состояний, но он продолжает исчезать. Есть идеи?

Это часть моего кода:

@interface AddCardViewController : UITableViewController <UITextFieldDelegate>{
UIButton *commit;
    ......

@implementation AddCardViewController

- (void)viewDidLoad{

    self.commit = [UIButton buttonWithType: UIButtonTypeCustom];

    [self setCommitProperties];

    [self.view addSubview:commit];

 .........}



- (void) setCommitProperties{

   CGRect frameTable = self.tableView.frame;

   CGRect frame = CGRectMake(frameTable.origin.x + 10, 140, frameTable.size.width - 20, 40);

   commit.frame = frame;

   [commit setBackgroundColor : [UIColor whiteColor]];

   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateNormal];
   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateSelected];
   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateHighlighted];
   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateApplication];
   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateReserved];
   [commit setTitle: NSLocalizedString(@"AddCard",@"") forState: UIControlStateDisabled];

    [commit addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];    

   UIColor *color = [[[PersonalizationManager alloc] init] getColor: @"AddCardViewController" :@"Commit_Title"]; 

   [commit.titleLabel setTextColor: color];

   color = [[[PersonalizationManager alloc] init] getColor: @"AddCardViewController" :@"Commit_Border"];

   [commit.layer setBorderColor:[color CGColor]];    
   [commit.layer setBorderWidth : 0.5f];
   [commit.layer setCornerRadius : 10.0f];
}

Ответы [ 5 ]

7 голосов
/ 16 февраля 2012

Ну, трудно сказать наверняка, но текст не виден, потому что цвет тот же?Я вижу, вы задали текст для всех состояний, но вы можете установить цвет для всех состояний.

[commit setTextColor:[UIColor redColor] forState:UIControlStateSelected];
2 голосов
/ 27 февраля 2015

С атрибутированным текстом, убедитесь, что кнопка Type = Custom (не System) в вашем storboard / xib.

2 голосов
/ 27 января 2013

Я заметил странную вещь.Если я установлю заголовок с помощью

  bttn.titleLabel.textColor = [UIColor purpleColor];

Затем, как только я нажму кнопку, заголовок исчезнет.Но, если я использую следующий метод:

[bttn setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];

, тогда все работает правильно.

1 голос
/ 16 февраля 2012

Полагаю, вам нужно использовать [self.commit setTitle: NSLocal..., фактически используйте self.commit для заданий (когда вы используете @property (nonatomic, retain) или strong с ARC).Я использую @synthesize commit = _commit;, а затем только _commit для всего остального модуля.

0 голосов
/ 25 августа 2017

Как говорит Джек, это «выбранное» состояние кнопки имеет тот же цвет фона.Вы можете изменить этот цвет также в раскадровке:

  • выберите кнопку
  • в Инспекторе атрибутов -> Конфигурация состояния -> выберите «выделенный»
  • выберите правильный"цвет текста"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...