iOSはlabelまたはbuttonのtitlelabelテキストの幅を取得します.
1237 ワード
以下の方法をUIButtonのカテゴリに追加し、CGSizeでsizeを取得した後、buttonまたはlabelのframeを再設定すればよい.
/*
txt:label button title
font:
size: size
*/
-(CGSize) boundingRectWithSize:(NSString*) txt Font:(UIFont*) font Size:(CGSize) size{
CGSize _size;
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
NSDictionary *attribute = @{NSFontAttributeName: font};
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading;
_size = [txt boundingRectWithSize:size options: options attributes:attribute context:nil].size;
#else
_size = [txt sizeWithFont:font constrainedToSize:size];
#endif
return _size;
}