1

我在我的应用程序中使用了 3 种自定义字体(伦敦、世纪教科书、Jacob_bold)。使用此代码,我将属性文本从文件设置为 textView。

NSMutableAttributedString *text1 =[NSMutableAttributedString.alloc
                                       initWithFileURL:[ NSBundle.mainBundle URLForResource:@"text48" withExtension:@"rtf"]
                                       options:nil
                                       documentAttributes:nil
                                       error:nil
                                       ];
 [self.textView setAttributedText:text1];

它适用于iOS7。此页面上有 2 种不同的字体。

СОЛОМЕНСКИЕ ЯЙЦА{ NSFont = " font-family: \"London\"; font-weight: normal; font-style: normal; font-size: 48.00pt"; NSParagraphStyle = "Alignment 1, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L,\ n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; } { NSFont = " font-family: \"Century Schoolbook\ "; 字体粗细:正常;字体样式:正常;font-size: 14.00pt"; NSParagraphStyle = "Alignment 1, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\ n 56L,\n 84L,\n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; } { NSFont = " font-family: \"Century Schoolbook\ "; 字体粗细:正常;字体样式:正常;font-size: 14.00pt"; NSParagraphStyle = "Alignment 3, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\ n 56L,\n 84L,\n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; } Я родился на Соломенке, улица Максима Кривоноса, и в комнате 18 квадратных метров, в нагрузку к имевшимся уже там родителям, бабушке и сестре Люсе. Кроме нас, в этой ничем не примечательной коммуналке жили ещё четыре семьи. Воспоминания об этом важнейшем отрезке жизни ( «как вы жизню распочнёте, так она и потечёт » - бабушка!), размытые и тёплые。

但对于 iOS 8,我为所有人获得或 1 种自定义字体

СОЛОМЕНСКИЕ ЯЙЦА { NSFont = " font-family: \"London\"; font-weight: normal; font-style: normal; font-size: 48.00pt"; NSParagraphStyle = "Alignment 1, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L,\ n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, 块 (null), 列表 (null) , BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; } Я родился на Соломенке, улица Максима Кривоноса, и стал пятым жильцом в комнате 18

... Типичная яйцемодель устройства общества。Именно этими мыслями боыла полна моя голова, когда созерцательный процесс грубо прерывался шлепком по попе от поемавшелот поемавшеломоня

{ NSFont = " font-family: \"London\"; font-weight: normal; font-style: normal; font-size: 48.00pt"; NSParagraphStyle = "Alignment 3, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L,\ n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, 块 (null), 列表 (null) , BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; }

甚至什么都没有

Со мной пробовали говорить。Мама била на жалость, говорила, что у курочки на яичко были планы, из него мог бы вырасти цыплёнок。Папа же поведал трагедию всей своей жизни, которую забыть я не смогу никогда。Однажды, когда па

...

{ NSParagraphStyle = "Alignment 3, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L, \n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, 块 (null), 列表 (null ), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; }

坚持,找不到出路。只有 1 是使用标准 Mac 字体,它们适用于这种情况。

!!!编辑尖峰方式

找到了解决方法-因为所有系统字体都可以正常工作,并且使用下面的代码手动设置此自定义字体一切正常,我已经解决了我的问题。希望这是个人错误,否则将得到修复。

 NSMutableAttributedString *res =[NSMutableAttributedString.alloc initWithFileURL:[ NSBundle.mainBundle URLForResource:dataObject.text withExtension:@"rtf"]
                                                                             options:nil
                                                                  documentAttributes:nil
                                                                               error:nil
                                     ];
    [res beginEditing];
  NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile: path1];
    __block BOOL found = NO;    [res enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, res.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
        if (value) {
              NSLog(@"%@",[(UIFont *)value fontName]);
                       if ([[(UIFont *)value fontName] isEqualToString:@"HelveticaNeue"]) {
                UIFont *oldFont = [UIFont fontWithName:@"London" size:48.0];
                UIFont *newFont = oldFont;
                [res removeAttribute:NSFontAttributeName range:range];
                [res addAttribute:NSFontAttributeName value:newFont range:range];
                found = YES;
            }
            if ([[(UIFont *)value fontName] isEqualToString:@"HelveticaNeue-Bold"]) {
                UIFont *oldFont = [UIFont fontWithName:@"CenturySchoolbook" size: 18.0];
                UIFont *newFont = oldFont;
                [res removeAttribute:NSFontAttributeName range:range];
                [res addAttribute:NSFontAttributeName value:newFont range:range];
                found = YES;
            }


        }
    }];
    if (!found) {
        // No font was found - do something else?
    }
    [res endEditing];
    [self.textView setAttributedText:res];
4

0 回答 0