2012-07-23 84 views
0

我知道有關於此的帖子,但沒有一個提示有用的東西..所以我的問題是,CTFramesetterSuggestFrameSizeWithConstraints返回的高度對於我的文本來說太小了,文本越長得到的越多。我用來計算身高的代碼:CTFramesetterSuggestFrameSizeWithConstraints返回錯誤的高度

CGFloat widthConstraint = self.frame.size.width; 
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(attrString); 
CGSize suggestedSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter,CFRangeMake(0, 0),NULL,CGSizeMake(widthConstraint, 20000),NULL); 
CGFloat suggestedHeight = suggestedSize.height; 

所以我的問題是我有什麼選擇?也許有一些解決方法? 我找到的解決方案之一是繪製文本,然後才找到高度,但我不知道該怎麼做。所以也許有人對此有一些解決方案?

謝謝我提前!

+0

的可能重複[CTFramesetterSuggestFrameSizeWithConstraints有時會返回不正確的大小?(http://stackoverflow.com/questions/3374591/ctframesettersuggestframesizewithconstraints-sometimes-returns-incorrect-size) – 2012-07-23 18:36:48

+0

其相似,但我要問,如果有人發現了一個決定這個,在yout貼的linkt只有建議來繪製文本,然後才能得到高度..但這是我的問題,我不知道如何,並尋求一些幫助:)一些教程或者如何做到這一點的想法。一些指導,因爲我卡住:/ – Lukas 2012-07-24 05:49:58

回答

0

經過很長一段時間後,我終於發現了什麼是錯的。畢竟這個方法按照預期工作,我認爲其他人都說它不在互聯網上犯了一些錯誤..我的錯誤是當我繪製文字我留下了一些不好的硬編碼值。所以,如果任何人有CTFramesetterSuggestFrameSizeWithConstraints問題,雙或tripple檢查你的繪圖代碼!

+1

我也懷疑CTFramesetterSuggestFrameSizeWithConstraints過錯。在我的情況下,我的屬性字符串的字體高度爲零點。檢查你的字體的人! – mrwalker 2013-08-01 10:59:30

+1

我的字體大小是冠。然而,我的方法是工作字體大小高達18,但如果我增加更多,那麼高度是不夠的。 – user1010819 2013-10-20 08:22:54

+0

我的問題是使用CTFrameSetter測量,但使用[NSString drawInRect:...]代替CTFrameSetter繪製舊繪圖代碼來繪製 – 2014-02-10 05:55:04