2013-04-07 77 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

那麼最後我找出如何做它,我想這不是最好的方式,但它的工作原理。

我實現了一個方法,該方法再次繪製所有內容並立即返回繪製文本的高度。現在實際上我必須畫兩次,一次得到它的高度,另一次在屏幕上顯示它!

相關問題