1. 程式人生 > >iOS開發--根據文字動態調整按鈕(UIButton)寬度

iOS開發--根據文字動態調整按鈕(UIButton)寬度

    CGRect mainBounds = [[UIScreen mainScreen] bounds];
    UIFont *font = [UIFont systemFontOfSize:15.0f];
    CGRect locationBtnFrame = self.locationButton.frame;
    
    CGFloat maxWidth = mainBounds.size.width - locationBtnFrame.origin.x;
    CGSize size = CGSizeMake(maxWidth, MAXFLOAT);
    CGSize theStringSize = [theText sizeWithFont:font
                               constrainedToSize:size
                                   lineBreakMode:self.locationButton.lineBreakMode];
    
    self.locationButton.frame = CGRectMake(locationBtnFrame.origin.x,
                                locationBtnFrame.origin.y,
                                theStringSize.width, locationBtnFrame.size.height);

上面的方法在7.0已經過期,7.0以後的版本採用下面的方法調整按鈕寬度

NSString *content = button.titleLabel.text;
    UIFont *font = button.titleLabel.font;
    CGSize size = CGSizeMake(MAXFLOAT, 30.0f);
    CGSize buttonSize = [content boundingRectWithSize:size
                          options:NSStringDrawingTruncatesLastVisibleLine  | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                       attributes:@{ NSFontAttributeName:font}
                                               context:nil].size;