2011-04-06 45 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

相关问题