views:

1277

answers:

3

Hi

I must have overlooked something completely obvious?? but my button displays its image and size correctly, but I simply can't get the Title to show up.

I did a really simple test, the Title does not even show up when I do this:

    CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f);
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
    [button setTitle:@"Hello" forState:UIControlStateNormal];
    [button setFrame:frameBtn];
    NSLog(@"Title:%@", [button currentTitle]);
    //prints "Title:Hello
    [self addSubview:button];

I have a factory class that generates custom buttons for me and I thought I messed some detail up there, so I moved the above code directly into my UIView, the title is still blank.

Is this a bug or am I simply missing something right in front of my eyes.

Thank you for the extra set of eyes:)

+5  A: 

Image overrides title, you need to make the image a background image to show the title.

[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] 
        forState:UIControlStateNormal];
Tuomas Pelkonen
Thank you Tuomas:)I was pulling my hair out on this one!I thought something like that was going on so I even tried stuff like"bringSubViewToFront" in desperation.I missed the background part in the documentation.Thank you again.
RickiG
Another big thanks to Tuomas! Answers like yours save hours of pain.
Bogatyr
A: 

I just hab spome quite similar problem... Just set the title color, I guess the current one is white ;)

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
Stefan Gritzka
A: 

I had a similar problem that the title was not shown. I forgot to set the frame property:

//set the position of the button
button.frame = CGRectMake(100, 170, 100, 30);
testing