您的位置:首页 > 移动开发 > IOS开发

那些 iOS 7 中容易被忽视的新特性总结

2016-01-16 16:00 465 查看
转载自: http://mobile.51cto.com/hot-435208.htm
14.使用NSAttributedString显示HTML

在app中使用Webviews有时会让人非常沮丧,即使只是显示少量的HTMLneirong ,Webviews也会消耗大量的内容。现在iOS7让这些变得简单了,你可以从用少量代码在HTML文件中创建一个NSAttributedString,比如:

NSString *html = @”<bold>Wow!</bold> Now <em>iOS</em> can create <h3>NSAttributedString</h3> from HTMLs!”;

NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};

NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF8StringEncoding]

options:options documentAttributes:nil error:nil];

现在你可以在任意的UIKit对象上使用NSAttributedString 了,比如说是一个UILabel或是一个UITextField,见以下代码:

#import <SSKeychain.h>

- (BOOL)saveCredentials:(NSError **)error {

SSKeychainQuery *query = [[SSKeychainQuery alloc] init];

query.password = @”MySecretPassword”;

query.service = @”MyAwesomeService”;

query.account = @”John Doe”;

query.synchronizable = YES;

return [query save:&error];

}

- (NSString *)savedPassword:(NSError **)error {

SSKeychainQuery *query = [[SSKeychainQuery alloc] init];

query.service = @”MyAwesomeService”;

query.account = @”John Doe”;

query.synchronizable = YES;

query.password = nil;

if ([query fetch:&error]) {

return query.password;

}

return nil;

注意:NSHTMLTextDocumentType 只是NSDocumentTypeDocumentAttribute key一种可能的值。你还可以使用NSPlainTextDocumentType,NSRTFTextDocumentType或是 NSRTFDTextDocumentType。

你还可以从NSAttributedString中创建一个HTML字符串,如下:

NSAttributedString *attrString; // from previous code

NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};

NSData *htmlData = [attrString dataFromRange:NSMakeRange(0, [attrString length]) documentAttributes:options error:nil];

NSString *htmlString = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];

现在你估计在app中会更多的使用HTML了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: