2012-07-27 62 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的指針作爲最後一個參數,它將它設置爲它能夠適合你傳遞它的最大尺寸的字符串範圍。

希望這適用於你:)