2013-04-07 75 views
0

我想调整UITableViewCell的高度。如何在显示之前绘制元素高度? Objective-C

我的单元格包含另一个视图,此视图将绘制文本并将其显示在单元格中。

但是,文本高度可能会有所不同,我只能在drawRect调用完成后(在嵌入式子视图中)找出它。

在显示视图之前有什么方法可以确定视图的高度吗?

回答

0

只要知道字体,绘制文本视图的宽度,并在必要时,换行模式,那么你可以使用两种:
sizeWithFont:
sizeWithFont:constrainedToSize:
sizeWithFont:constrainedToSize:lineBreakMode:

+0

实际上它不是一个字符串,文本是用CGraphics绘制的。 – user2255605 2013-04-07 23:52:35

+0

无论如何,它仍然是你正在绘制的文本,说文本将是一个字符串。此外,[这篇文章](http://stackoverflow.com/questions/3182709/quartz-2d-core-graphics-what-is-the-right-way-to-draw-some-text)指出了不同的方法绘制一个字符串,答案也相当丰富 – user352891 2013-04-08 00:12:39

+0

谢谢,我使用一个以复杂方式绘制文本以支持ios上的自定义字体的库(IOS似乎忽略了某些语言的自定义字体)。所以这个解决方案不适用于我的情况。我通过两次绘制相同的文本解决了这个问题,其中一个获得了高度,另一个绘制在屏幕上显示。我接受了你的答案,我希望我能够投票(因为我是新来的,因此声誉很低)。 – user2255605 2013-04-08 10:03:14

0

那么最后我找出如何做它,我想这不是最好的方式,但它的工作原理。

我实现了一个方法,该方法再次绘制所有内容并立即返回绘制文本的高度。现在实际上我必须画两次,一次得到它的高度,另一次在屏幕上显示它!

相关问题