av993
av993

Reputation: 71

Button Text not showing

When I try to post the following code, my app just shows an empty rectangle where the button's text should be. I am a beginner at xcode and I have determined this code from other tutorials.

- (void)viewDidLoad {
    [super viewDidLoad];

    UILabel *player1 = [[UILabel alloc]initWithFrame:CGRectMake(35, 120,130, 30)];
    [player1 setText:@"Player"];
    player1.layer.borderWidth = 1.0;
    player1.layer.borderColor = [UIColor blackColor].CGColor;
     player1.textAlignment = UITextAlignmentCenter;
    [self.view addSubview: player1];

    UIButton *score1 = [[UIButton alloc]initWithFrame:CGRectMake(165, 120, 60, 30)];
    [score1 setTitle:@"0" forState:UIControlStateNormal];
    score1.layer.borderWidth = 1.0;
    score1.layer.borderColor = [UIColor blackColor].CGColor;
    [self.view addSubview: score1];


    UILabel *player2 = [[UILabel alloc]initWithFrame:CGRectMake(35, 150, 130, 30)];
    [player2 setText:@"Opponent"];
    player2.layer.borderWidth = 1.0;
    player2.layer.borderColor = [UIColor blackColor].CGColor;
    player2.textAlignment = UITextAlignmentCenter;
    [self.view addSubview: player2];
}

Like I said, everything but the text in the button is showing up.

Upvotes: 0

Views: 1753

Answers (2)

WangYudong
WangYudong

Reputation: 4423

The reason why the button looks blank is because its text color is actually white. Just give it a different color and 0 will now show:

score1.layer.backgroundColor = [UIColor blackColor].CGColor;

enter image description here

If you don't want to change the button background color, you may want to set the text color:

[score1 setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

Read Question: [initWithFrame:frame] vs. [UIButton buttonWithType], for more about creating a UIButton with these different methods.

Upvotes: 4

matt
matt

Reputation: 534950

The problem is the way you're creating the button:

UIButton *score1 = [[UIButton alloc]initWithFrame:CGRectMake(165, 120, 60, 30)];

That's not how you do it. Do it like this:

UIButton *score1 = [UIButton buttonWithType:UIButtonTypeSystem];
score1.frame = CGRectMake(165, 120, 60, 30);

All will be well after that!

enter image description here

Upvotes: 1

Related Questions