Showing posts with label UIButton setAttributedTitle forState example. Show all posts
Showing posts with label UIButton setAttributedTitle forState example. Show all posts

Thursday, May 30, 2013

UIButton setAttributedTitle forState example in Objective C (iOS).

UIButton setAttributedTitle forState

Sets the styled title to use for the specified state.

- (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state

Parameters of [UIButton setAttributedTitle forState]
title
The styled text string so use for the title.
state
The state that uses the specified title. The possible values are described in UIControlState.

Discussion of [UIButton setAttributedTitle forState]
Use this method to set the title of the button, including any relevant formatting information. If you set both a title and an attributed title for the button, the button prefers the use of the attributed title.

At a minimum, you should set the value for the normal state. If a title is not specified for a state, the default behavior is to use the title associated with the UIControlStateNormal state. If the value for UIControlStateNormal is not set, then the property defaults to a system value.

UIButton setAttributedTitle forState example.
- (void)viewDidLoad
{
    [super viewDidLoad];

    // We want 2 lines for our buttons' title label
    [[self.button titleLabel] setNumberOfLines:2];

    // Setup the string
    NSMutableAttributedString *titleText = [[NSMutableAttributedString alloc] initWithString:@"This should be bold,\n and this should not."];

    // Set the font to bold from the beginning of the string to the ","
    [titleText addAttributes:[NSDictionary dictionaryWithObject:[UIFont boldSystemFontOfSize:14] forKey:NSFontAttributeName] range:NSMakeRange(0, 20)];

    // Normal font for the rest of the text
    [titleText addAttributes:[NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:14] forKey:NSFontAttributeName] range:NSMakeRange(20, 22)];

    // Set the attributed string as the buttons' title text
    [self.button setAttributedTitle:titleText forState:UIControlStateNormal];
}

Example of [UIButton setAttributedTitle forState].
NSMutableAttributedString *commentString = [[NSMutableAttributedString alloc] initWithString:@"The Quick Brown Fox"];

[commentString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [commentString length])];

[button setAttributedTitle:commentString forState:UIControlStateNormal];

UIButton setAttributedTitle forState example.
NSString* infoString=@"This is an example of Attributed String";

    NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];
    NSInteger _stringLength=[infoString length];

    UIColor *_red=[UIColor redColor];
    UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
    [attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)];
    [attString addAttribute:NSForegroundColorAttributeName value:_red range:NSMakeRange(0, _stringLength/2)];
    [self.attribButton setAttributedTitle:attString forState:UIControlStateNormal];
    self.attribButton.titleLabel.numberOfLines=2; 

End of UIButton setAttributedTitle forState example article.