2012-07-27 54 views
4

当我尝试使用具有unicode文本的此函数时,它会根据字体大小返回错误的高度作为其计算高度,但表情符号会更大并且比unicode的高度更高。unicode文本在iPhone中的字符串中时的高度字符串

[文本sizeWithFont:[UIFont systemFontOfSize:12.0] constrainedToSize:CGSizeMake(233.0f,999.0f)lineBreakMode:UILineBreakModeWordWrap];

真正的高度可以通过字符串中的unicodes来计算吗?

回答

0

看看CoreText框架。

你可以尝试这样的:

CTFrameSetterRef framesetter = CTFramesetterCreateWithAttributedString(myAttributedString); 
CGSize size = CTFramesetterSuggestFrameSizeWithConstraints(frame setter, CFRangeMake(0, stringLength), NULL, CGSizeMake(maxWidth, maxHeight), NULL); 

这应该得到正确的大小为您服务。你当然可以使maxHeight任意大,以确保字符串符合最大尺寸。或者你可以传递一个指向CFRange的指针作为最后一个参数,它将它设置为它能够适合你传递它的最大尺寸的字符串范围。

希望这适用于你:)