2011-04-06 47 views
5

我在我的UITableViewCell之一中看到了一些奇怪的行爲。當將textLabel的字體設置爲斜體字體([UIFont fontWithName:@"Helvetica-BoldOblique" size:17])時,最後幾個像素被切斷。它不看真的不好,但我想避免它。有什麼建議麼?UITableViewCell textLabel cut

Image http://i56.tinypic.com/2ylplau.png

我使用的是默認UITableViewCell,因爲我只需要一個UILabel,因此無需子類。設置字體後,我嘗試撥打[cell.textLabel sizeToFit],但沒有奏效。

+1

你在使用什麼樣的細胞?你可以嘗試在你顯示的字符串的末尾添加一個空格嗎? – 2011-04-06 15:25:58

+0

添加空格確實有幫助,但爲每個單元格創建一個字符串似乎有點不好(沒有找到更好的單詞:))。 (我會像這樣設置文本:'[NSString stringWithFormat:@「%@」,-original text-]') – fabian789 2011-04-06 15:38:20

回答

4

正如occulus指出的那樣,UILabel對於斜體文本來說不夠寬。但是,因爲我使用的是默認UITableViewCell,所以我無法更改此設置。 (該textLabel框架似乎在某些時候不認得我當-tableView:willDisplayCell:forRowAtIndexPath:被調用來進行設定,它仍然CGRectZero

因此,唯一的解決辦法似乎在我的字符串末尾添加一個空格,尼克·韋弗建議:

cell.textLabel.text = [NSString stringWithFormat:@"%@ ", cell.textLabel.text]; 
+1

這通過在文本的兩端留出空間來解決了我的問題。例如,一個斜體的「j」有它的底部切掉沒有空間。 – 2011-10-30 02:39:58

+3

真的很傷心,我們不得不訴諸這種醜陋的做法。 – 2012-05-25 19:34:12

+0

只要我記得,這個bug一直存在。如果它影響到你,你應該向Apple提交一份錯誤報告。當我使用粗體和斜體字體(例如「Helvetica-BoldOblique」)的字幕樣式單元格(UITableViewCellStyleSubtitle)時,它只會影響我。 – smacdonald 2015-03-13 08:42:48

3

引起問題的並不是真正的斜體;這只是你的UILabel不夠寬。確保它有足夠的寬度來容納你想要的文字。因此,要麼在界面生成器中將UILabel調整爲更寬(通過拖動右側的一個角),或者如果要在代碼中製作UILabel,請給它一個更寬的框架。

斜體恰好揭示了事實,即您的UILabel不是很寬,而您之前只是想「遠離它」。

+0

顯然,'[cell.textLabel sizeToFit]'不起作用。你會怎麼做? – fabian789 2011-04-06 15:26:37

+0

嗯,其他人已經報告了sizeToFit的問題:http://www.cocoabuilder.com/archive/cocoa/98254-nstext-sizetofit-doesn.html因此,無論是增加一些寬度,或只是不使用sizeToFit - - 只要讓UILabel開始就相當寬泛。 – occulus 2011-04-06 15:28:20

+0

順便說一句,你* *在*設置字體後調用sizeToFit *,對吧? – occulus 2011-04-06 15:29:19

相關問題