“NSAttributedString initWithData:options:documentAttribute:error:”无法按预期工作

时间:2014-01-24 22:24:23

标签: ios iphone fonts ios7 nsattributedstring

我正在尝试使用HTML字符串填充UITableView。获取字符串,将它们放入单元格等等一切都很好。我想改变我的NSAttributedText的字体和字体大小。我写了下面的代码。

我通过第一个NSLog检查了代码,如果我的UIFont按预期在字典中;所以它在字典里。还是没问题。但我的字体和字体大小在运行时没有变化。没有控制台错误。只是不工作。

第二个NSLog用于检查attributionString的字体和大小。它说,我的字符串是“Times New Roman”,fontSize:12 。但正如您将在代码中看到的那样,我正试图将其设为“Verdana”,其大小为15

任何人都可以帮我这个吗?感谢。

PS:我将字符串保留在某些对象中。 obj.name 是我要写入表格单元格的字符串 Html字符串有一些不需要的标记,因此函数 [self clearTheHtml:obj.name] 函数正在清除它们。

    NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
    UIFont *font = [UIFont fontWithName:@"Verdana" size:15];
    [attributes setObject:font forKey:NSFontAttributeName];
    NSString *s = [self clearTheHtml:obj.name];
    NSLog(@"%@", [attributes objectForKey:NSFontAttributeName]); //to see if my font is not in the dictionary. 
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[s dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:&attributes error:nil];
    NSLog(@"%@", attributedString);

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2 forIndexPath:indexPath];
    cell.textLabel.attributedText = attributedString;

编辑:

这是NSString * s:

2014-01-25 07:38:04.527 KadirB[7483:70b] 
''Narakas 2013 Brachial Plexus Surgery Symposıum'' 23-25 Mayıs 2013 tarihleri arasında Montreux, İsviçre de yapıldı. Brakial Plexus sorunlarına yönelik son gelişmeler toplantıda tartışıldı.

1 个答案:

答案 0 :(得分:5)

几天前我遇到了同样的问题。我通过简单地改变实现来解决这个问题:

...
NSMutableAttributedString *attributedString = ...;
[attributedString addAttributes:@{NSFontAttributeName: font} range:NSMakeRange(0, attributedString.length)];

我希望它也可以帮到你。