2012-02-16 152 views
2

我有一個與UIButton裏面的ViewController。 當我點擊時,按鈕上的文字消失。 我爲所有狀態添加所有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的所有屬性。 這些都是問的好東西。 非常感謝 – 2012-02-16 14:48:35

+0

我是一個新的ios開發人員,我認爲api已更改cz沒有setTextColor方法可用。改用setTitleColor – sudip 2013-01-27 14:43:30

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

使用屬性文本時,確保在storboard/xib中按鈕Type = 自定義(不是系統)。

0

正如Jack所說,這是按鈕的「已選擇」狀態,它具有與背景相同的顏色。 您可以更改顏色也是在故事板:

  • 選擇按鈕
  • 在屬性檢查器 - >狀態配置 - >選擇「突出」
  • 選擇正確的「文本顏色」