【问题标题】:Changing Font in UITextView does not work in iOS7在 UITextView 中更改字体在 iOS7 中不起作用
【发布时间】:2013-10-18 00:40:16
【问题描述】:

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

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

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

在 iOS6 中是这样的;

在 iOS7 中是这样的;

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

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

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

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

【问题讨论】:

  • 字体“didot”在 iOS 7 中可用吗?
  • 为了明确我想使用 Helvetica,我选择了该字体作为示例(因为它不同)。我刚刚尝试了 Helvetica 20,但它并没有改变。

标签: cocoa-touch uitableview fonts ios7 uitextview


【解决方案1】:

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

如果我在设置文本之后设置字体 它对我有用。否则字体会变小。

试试这个:

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

【讨论】:

【解决方案2】:

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

-(void)viewWillAppear:(BOOL)animated
{
     self.myTextView.font = [UIFont fontWithName:@"Baskerville-Italic" size:18.0];
}

【讨论】:

  • 使用 iOS 8 sdk 这是唯一对我有用的解决方案。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    这与我面临的问题相同。

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

    【讨论】:

    • 你能给出一个代码示例来说明如何做到这一点吗?给出的建议似乎与公认的答案不同,并且可能与该开发领域的新手有关。
    • @gabe3886 我刚刚从情节提要中更改了它。
    【解决方案5】:

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

    NSMutableParagraphStyle *pStyle = [[NSMutableParagraphStyle alloc] init];
    [pStyle setAlignment:NSTextAlignmentCenter];
    tv.attributedText = [[NSAttributedString alloc]
                         initWithString:text
                             attributes:@{ NSForegroundColorAttributeName: color,
                                           NSFontAttributeName: [UIFont systemFontOfSize:fontSize],
                                           NSParagraphStyleAttributeName: pStyle,
                                         } ];
    

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2014-11-11
      • 2014-01-24
      • 1970-01-01
      相关资源
      最近更新 更多