iOS開發--根據文字動態調整按鈕(UIButton)寬度
阿新 • • 發佈:2019-02-16
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;