NSAttributedString *attrStr = ... // your attributed string
CGFloat width = 300; // whatever your desired width is
CGRect rect = [attrStr boundingRectWithSize:CGSizeMake(width, 10000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
CGFloat width = 300; // whatever your desired width is
CGRect rect = [attrStr boundingRectWithSize:CGSizeMake(width, 10000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
方法一:
UIFont * font = [UIFont fontWithName:@"Helvetica" size:20.0];
CGSize size = CGSizeMake(320,1000);
CGSize lablesize = [showtext.string sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];
方法2:
CGSize lablesize = [showtext boundingRectWithSize:CGSizeMake(300,10000) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading context:nil].size;我发现用方法1,正好能够显示出label中的内容showtext ,但是方法2却不行,只能显示大约一半,这是为什么呢?
方法一:
UIFont * font = [UIFont fontWithName:@"Helvetica" size:20.0];
CGSize size = CGSizeMake(320,1000);
CGSize lablesize = [showtext.string sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];
方法2:
CGSize lablesize = [showtext boundingRectWithSize:CGSizeMake(300,10000) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading context:nil].size;我发现用方法1,正好能够显示出label中的内容showtext ,但是方法2却不行,只能显示大约一半,这是为什么呢?
方法2 没有附加上其它的属性,如字体大小等设置。尝试如下代码
NSDictionary *attributes = @{NSFontAttributeName:font};
CGSize lablesize = [showtext boundingRectWithSize:CGSizeMake(300,10000) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
attributes:attributes
context:nil].size;