中文字体下载
2019獨角獸企業重金招聘Python工程師標準>>>
#import?<UIKit/UIKit.h>@interface?ViewController?:?UIViewController<UITableViewDelegate,UITableViewDataSource>@property?(strong,?nonatomic)?NSArray?*fontNames; @property?(strong,?nonatomic)?NSArray?*fontSamples; @property?(weak,?nonatomic)?IBOutlet?UITableView?*fTableView; @property?(weak,?nonatomic)?IBOutlet?UITextView?*fTextView; @property?(weak,?nonatomic)?IBOutlet?UIProgressView?*fProgressView; @property?(weak,?nonatomic)?IBOutlet?UIActivityIndicatorView?*fActivityIndicatorView;@endCopyright?(C)?2013?Apple?Inc.?All?Rights?Reserved.*/#import?"ViewController.h" #import?<CoreText/CoreText.h> //下載官方提供的中文字體?demo鏈接 //https://developer.apple.com/library/ios/samplecode/DownloadFont/Listings/DownloadFont_ViewController_m.html @interface?ViewController?()@property?(strong,?nonatomic)?NSString?*errorMessage;@end@implementation?ViewController-?(void)asynchronouslySetFontName:(NSString?*)fontName {UIFont*?aFont?=?[UIFont?fontWithName:fontName?size:12.];//?If?the?font?is?already?downloaded//先判斷字體是否已經被下載if?(aFont?&&?([aFont.fontName?compare:fontName]?==?NSOrderedSame?||?[aFont.familyName?compare:fontName]?==?NSOrderedSame))?{//?Go?ahead?and?display?the?sample?text.NSUInteger?sampleIndex?=?[_fontNames?indexOfObject:fontName];_fTextView.text?=?[_fontSamples?objectAtIndex:sampleIndex];_fTextView.font?=?[UIFont?fontWithName:fontName?size:24.];return;}//?Create?a?dictionary?with?the?font's?PostScript?name.NSMutableDictionary?*attrs?=?[NSMutableDictionary?dictionaryWithObjectsAndKeys:fontName,?kCTFontNameAttribute,?nil];//?Create?a?new?font?descriptor?reference?from?the?attributes?dictionary.CTFontDescriptorRef?desc?=?CTFontDescriptorCreateWithAttributes((__bridge?CFDictionaryRef)attrs);NSMutableArray?*descs?=?[NSMutableArray?arrayWithCapacity:0];//將字體描述對象放在可變數組中[descs?addObject:(__bridge?id)desc];CFRelease(desc);__block?BOOL?errorDuringDownload?=?NO;//?Start?processing?the?font?descriptor..//?This?function?returns?immediately,?but?can?potentially?take?long?time?to?process.//?The?progress?is?notified?via?the?callback?block?of?CTFontDescriptorProgressHandler?type.//?See?CTFontDescriptor.h?for?the?list?of?progress?states?and?keys?for?progressParameter?dictionary.CTFontDescriptorMatchFontDescriptorsWithProgressHandler(?(__bridge?CFArrayRef)descs,?NULL,??^(CTFontDescriptorMatchingState?state,?CFDictionaryRef?progressParameter)?{//NSLog(?@"state?%d?-?%@",?state,?progressParameter);double?progressValue?=?[[(__bridge?NSDictionary?*)progressParameter?objectForKey:(id)kCTFontDescriptorMatchingPercentage]?doubleValue];if?(state?==?kCTFontDescriptorMatchingDidBegin)?{dispatch_async(?dispatch_get_main_queue(),?^?{//?Show?an?activity?indicatorNSLog(@"字體已經匹配");[_fActivityIndicatorView?startAnimating];_fActivityIndicatorView.hidden?=?NO;//?Show?something?in?the?text?view?to?indicate?that?we?are?downloading_fTextView.text=?[NSString?stringWithFormat:@"Downloading?%@",?fontName];_fTextView.font?=?[UIFont?systemFontOfSize:14.];NSLog(@"Begin?Matching");});}?else?if?(state?==?kCTFontDescriptorMatchingDidFinish)?{dispatch_async(?dispatch_get_main_queue(),?^?{//?Remove?the?activity?indicator[_fActivityIndicatorView?stopAnimating];_fActivityIndicatorView.hidden?=?YES;//?Display?the?sample?text?for?the?newly?downloaded?fontNSUInteger?sampleIndex?=?[_fontNames?indexOfObject:fontName];_fTextView.text?=?[_fontSamples?objectAtIndex:sampleIndex];_fTextView.font?=?[UIFont?fontWithName:fontName?size:24.];//?Log?the?font?URL?in?the?consoleCTFontRef?fontRef?=?CTFontCreateWithName((__bridge?CFStringRef)fontName,?0.,?NULL);CFStringRef?fontURL?=?CTFontCopyAttribute(fontRef,?kCTFontURLAttribute);NSLog(@"%@",?(__bridge?NSURL*)(fontURL));CFRelease(fontURL);CFRelease(fontRef);if?(!errorDuringDownload)?{NSLog(@"%@?downloaded",?fontName);}});}?else?if?(state?==?kCTFontDescriptorMatchingWillBeginDownloading)?{dispatch_async(?dispatch_get_main_queue(),?^?{//?Show?a?progress?bar_fProgressView.progress?=?0.0;_fProgressView.hidden?=?NO;NSLog(@"Begin?Downloading");});}?else?if?(state?==?kCTFontDescriptorMatchingDidFinishDownloading)?{dispatch_async(?dispatch_get_main_queue(),?^?{//?Remove?the?progress?bar_fProgressView.hidden?=?YES;NSLog(@"Finish?downloading");});}?else?if?(state?==?kCTFontDescriptorMatchingDownloading)?{dispatch_async(?dispatch_get_main_queue(),?^?{//?Use?the?progress?bar?to?indicate?the?progress?of?the?downloading[_fProgressView?setProgress:progressValue?/?100.0?animated:YES];NSLog(@"下載進度Downloading?%.0f%%?complete",?progressValue);});}?else?if?(state?==?kCTFontDescriptorMatchingDidFailWithError)?{//?An?error?has?occurred.//?Get?the?error?messageNSError?*error?=?[(__bridge?NSDictionary?*)progressParameter?objectForKey:(id)kCTFontDescriptorMatchingError];if?(error?!=?nil)?{_errorMessage?=?[error?description];}?else?{_errorMessage?=?@"ERROR?MESSAGE?IS?NOT?AVAILABLE!";}//?Set?our?flagerrorDuringDownload?=?YES;dispatch_async(?dispatch_get_main_queue(),?^?{_fProgressView.hidden?=?YES;NSLog(@"下載錯誤Download?error:?%@",?_errorMessage);});}return?(bool)YES;});}-?(NSInteger)tableView:(UITableView?*)tableView?numberOfRowsInSection:(NSInteger)section {return?[_fontNames?count]; }-?(UITableViewCell?*)tableView:(UITableView?*)tableView?cellForRowAtIndexPath:(NSIndexPath?*)indexPath { static?NSString?*MyIdentifier?=?@"MyIdentifier";//?Try?to?retrieve?from?the?table?view?a?now-unused?cell?with?the?given?identifier.UITableViewCell?*cell?=?[tableView?dequeueReusableCellWithIdentifier:MyIdentifier];//?If?no?cell?is?available,?create?a?new?one?using?the?given?identifier.if?(cell?==?nil)?{//?Use?the?default?cell?style.cell?=?[[UITableViewCell?alloc]?initWithStyle:UITableViewCellStyleDefault?reuseIdentifier:MyIdentifier];}//?Set?up?the?cell.cell.textLabel.text?=?_fontNames[indexPath.row];return?cell; }-?(void)tableView:(UITableView?*)tableView?didSelectRowAtIndexPath:(NSIndexPath?*)indexPath {[self?asynchronouslySetFontName:_fontNames[indexPath.row]];//?Dismiss?the?keyboard?in?the?text?view?if?it?is?currently?displayedif?([self.fTextView?isFirstResponder])[self.fTextView?resignFirstResponder]; }-?(void)viewDidLoad {[super?viewDidLoad];self.fontNames?=?[[NSArray?alloc]?initWithObjects:@"STXingkai-SC-Light",@"DFWaWaSC-W5",@"FZLTXHK--GBK1-0",@"STLibian-SC-Regular",@"LiHeiPro",@"HiraginoSansGB-W3",nil];self.fontSamples?=?[[NSArray?alloc]?initWithObjects:@"漢體書寫信息技術標準相",@"容檔案下載使用界面簡單",@"支援服務升級資訊專業制",@"作創意空間快速無線上網",@"兙兛兞兝兡兣嗧瓩糎",@"㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩",nil]; }-?(void)didReceiveMemoryWarning {[super?didReceiveMemoryWarning];//?Dispose?of?any?resources?that?can?be?recreated. }@end轉載于:https://my.oschina.net/u/2319073/blog/659365
總結
- 上一篇: 利用控制台进入某个目录下文件
- 下一篇: 【VoxelNet —— 体素网络】