我可以使用This方法获取字符串大小
[myString sizeWithAttributes:@{NSFontAttributeName :myFont}
但是,我的字符串有HTML内容,我试着这样做
[myString sizeWithAttributes:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSFontAttributeName :myFont}
但是,我的错误值?
我还试着像这样使用NSAttributedString
NSAttributedString * tabText = [[NSAttributedString alloc] initWithData:[myString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,myFont: NSFontAttributeName} documentAttributes:nil error:nil];
CGSize mySize=[tabText size];
而且我得错了。
我的字符串是非常基本的HTML内容,例如“test & test
”,它返回
15个字符的宽度不是11
答案 0 :(得分:1)
首先尝试删除html标记,将其用作参考 - Remove HTML Tags from an NSString on the iPhone
然后获取字符串大小,试试这个:
CGSize stringSize = [YOUR_STRING sizeWithAttributes: @{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];
// ceilf - is used to get equivalent values
CGSize currentSize = CGSizeMake(ceilf(stringSize.width), ceilf(stringSize.height));