2012-07-23 86 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