8

我有一个带有文本的 UITextView,视图位于 UITableViewCell 中。我注意到 iOS7 上的字体与 iOS6 上的字体不太一样,注意到它设置为“系统”我决定指定确切的字体/大小。

似乎什么也没发生,所以我想我会做一个更好的测试(大字体没有在任何地方使用),就像在我的“CellForRowAt ....”中一样;

cell.newsItemDescription.font = [UIFont fontWithName:@"didot" size:20];
cell.newsItemDescription.text = newsDescriptions[indexPath.row];

在 iOS6 中它是这样的;

来自 iOS6 的屏幕截图

在iOS7中它是这样出来的;

在此处输入图像描述

它只发生在应用程序的几个地方,但很烦人,不知道为什么?我很快就可以在整个应用程序中使用 iOS7 字体/大小。

一些额外的信息;
UITextView 与单元格一起调整每个单元格的大小(使用弹簧/支柱,即没有自动布局)和 HeightForRow ...

字体最初是在 Storyboard 中设置的(作为系统)

这在设备和模拟器上是一样的

4

5 回答 5

32

我在 iOS 7 中有一个奇怪的行为。如果我将它设置到 xib 中,字体比我预期的要小。

如果我在设置文本设置字体,它对我有用。否则字体较小。

试试这个:

  cell.newsItemDescription.text = newsDescriptions[indexPath.row];
  cell.newsItemDescription.font = [UIFont fontWithName:@"didot" size:20];
于 2013-10-11T07:10:22.797 回答
6

我今天在使用 UITextView 时遇到了同样的问题,在阅读 AlKozin 的答案时,我想起了一些事情:某处,有时我读到自 iOS 7 以来,设置字体样式的最佳做法是在视图加载后设置它们。换句话说,如果我在 viewDidLoad: 中设置所有内容,则什么也不会发生。您必须在 viewWillAppear: 中设置 UITextView 的字体,如下所示:

-(void)viewWillAppear:(BOOL)animated
{
     self.myTextView.font = [UIFont fontWithName:@"Baskerville-Italic" size:18.0];
}
于 2014-06-30T07:26:55.317 回答
3

我遇到了一个奇怪的错误(Xcode 7.2.1),在 IB 中取消选中“可选”会导致 UITextView 不遵守通过 IB 指定的字体设置。

参考图像

于 2016-04-06T22:01:28.420 回答
3

这是我面临的同样问题。

从情节提要中使 UITextview “可选择”将起作用。

于 2016-04-26T10:27:22.420 回答
0

在 iOS 7 上设置 textview.font 对我来说效果很好,但在 iOS 8 上,这些答案或其他 SO 页面上的其他类似答案都不适合我。我能够让它工作的唯一方法是使用 NSAttributedString。

NSMutableParagraphStyle *pStyle = [[NSMutableParagraphStyle alloc] init];
[pStyle setAlignment:NSTextAlignmentCenter];
tv.attributedText = [[NSAttributedString alloc]
                     initWithString:text
                         attributes:@{ NSForegroundColorAttributeName: color,
                                       NSFontAttributeName: [UIFont systemFontOfSize:fontSize],
                                       NSParagraphStyleAttributeName: pStyle,
                                     } ];
于 2015-07-31T20:26:14.387 回答