UILabel+ContentSize.h
#import <UIKit/UIKit.h>
@interface UILabel (ContentSize)
- (CGSize)contentSize;
@end
UILabel+ContentSize.m
#import "UILabel+ContentSize.h"
@implementation
UILabel
(ContentSize)
-
(
CGSize
)
contentSize
{
NSMutableParagraphStyle
*
paragraphStyle
=
[[
NSMutableParagraphStyle
alloc
]
init
];
paragraphStyle
.
lineBreakMode
=
self
.
lineBreakMode
;
paragraphStyle
.
alignment
=
self
.
textAlignment
;
NSDictionary
*
attributes
=
@{
NSFontAttributeName
:
self
.
font
,
NSParagraphStyleAttributeName
:
paragraphStyle
};
CGSize
contentSize
=
[
self
.
text
boundingRectWithSize
:
self
.
frame
.
size
options:
(
NSStringDrawingUsesLineFragmentOrigin
|
NSStringDrawingUsesFontLeading
)
attributes:
attributes
context:
nil
].
size
;
return
contentSize
;
}