cfischer
cfischer

Reputation: 24912

UIButton's titleLabel.text is not displayed on Cocoa Touch

After I create a new UIButton at runtime, and set its titleLabel's text, the button's text is still not displayed.

What am I doing wrong?

-(IBAction) cloneMe: (id) sender{

    if (!currentY) {
        currentY = [sender frame].origin.y;
    }

    UIButton *clone = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    CGRect cloneFrame = [sender frame];
    cloneFrame.origin.y += currentY + cloneFrame.size.height + 30;
    clone.frame = cloneFrame;
    [clone titleLabel].text = @"I'm a clone";

    [[sender superview] addSubview:clone];

    currentY = cloneFrame.origin.y + cloneFrame.size.height;


}

Upvotes: 0

Views: 4567

Answers (2)

James Huddleston
James Huddleston

Reputation: 8448

Use setTitle:forState: to set the title of a button.

Upvotes: 2

Simon Whitaker
Simon Whitaker

Reputation: 20586

You need:

[clone setTitle:@"I'm a clone" forState:UIControlStateNormal];

Check out the UIControl API docs for other valid values for the forState: argument.

Upvotes: 12

Related Questions