UIButton标题消失了

时间:2012-02-16 14:20:07

标签: iphone objective-c uibutton

我有一个内置UIButton的ViewController。 当我点击时,按钮上的文字消失了。 我为所有状态添加了所有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 个答案:

答案 0 :(得分:7)

嗯,很难肯定地说,但文字是不可见的,因为颜色是一样的?我看到你为所有状态设置了文本,但你也可能想要为所有状态设置颜色。

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

答案 1 :(得分:2)

我注意到一件奇怪的事情。 如果我使用

设置标题
  bttn.titleLabel.textColor = [UIColor purpleColor];

然后,一旦我点击按钮,标题就会消失。 但是,如果我使用以下方法:

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

然后一切正常。

答案 2 :(得分:2)

使用属性文本,确保storboard / xib中的按钮Type = 自定义(非系统)。

答案 3 :(得分:1)

我想你需要使用[self.commit setTitle: NSLocal...,实际上总是使用self.commit进行分配(当你使用@property (nonatomic, retain)strong时使用ARC)。我使用@synthesize commit = _commit;,然后只对模块的其余部分使用_commit。

答案 4 :(得分:0)

正如杰克所说,它已被选中&#34;具有相同背景颜色的按钮的状态。 您也可以在故事板中更改该颜色:

  • 选择按钮
  • 属性检查器中的
  • - &gt;状态配置 - &gt;选择&#34;突出显示&#34;
  • 选择正确的&#34;文字颜色&#34;