2012-02-16 2 views
2

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

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

@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]; 
} 

ответ

7

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

[commit setTextColor:[UIColor redColor] forState:UIControlStateSelected]; 
+0

Да, это было решение. Ты прав. Я не думал о цвете, я пробовал и тестировал все свойства Title. Это хорошие вещи. Большое спасибо –

+0

Я новый разработчик ios, и я думаю, что api изменен cz, нет метода setTextColor. Вместо этого используйте setTitleColor – sudip

1

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

2

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

bttn.titleLabel.textColor = [UIColor purpleColor]; 

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

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

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

2

С приписанным текстом убедитесь, что кнопка Type = Пользовательский (не система) в вашем хранилище/xib.

0

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

  • нажмите кнопку
  • в Attributes Inspector -> Состояние Config -> выберите "выделены"
  • выбрать правильный "цвет текста"
Смежные вопросы