拇指大爆炸-分詞功能

最近看到iOS/Mac 開發(fā)者鐘穎 Cyan 和錘子科技關(guān)于是否抄襲的爭議,有感而發(fā):這是iOS在分詞功能的實現(xiàn)。并沒有關(guān)于倆這進(jìn)行談?wù)摗?/p>

如何實現(xiàn)拇指大爆炸的功能

1:使用3D Touch來展示內(nèi)容,這部分簡單的說明:

1.1 是否有3D Touch功能

//方法里檢測手機(jī)是否有3D Touch功能

  • (void)viewWillAppear:(BOOL)animated {
    if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
    //有3D Touch功能
    [self registerForPreviewingWithDelegate:(id)self sourceView:self.view];
    }else{
    //沒有3D Touch功能
    }
    }
1.2 實現(xiàn)3D Touch的代理方法UIViewControllerPreviewingDelegate

pragma mark - 3D Touch Delegate

//點擊進(jìn)入預(yù)覽模式: 實現(xiàn)該協(xié)議方法

  • (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location {
    // check if we're not already displaying a preview controller
    if ([self.presentedViewController isKindOfClass:[WJFTextVC class]]) {
    return nil;
    }
    WJFTextVC *previewController = [WJFTextVC new];
    previewController.view.backgroundColor = [UIColor blueColor];
    previewController.textArray = self.words;
    return previewController;
    }

//繼續(xù)按壓進(jìn)入:實現(xiàn)該協(xié)議

  • (void)previewingContext:(id<UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit {
    WJFTextVC *previewController = [WJFTextVC new];
    previewController.view.backgroundColor = [UIColor redColor];
    previewController.textArray = self.words;
    [self showViewController:previewController sender:self];

}

2 重點分詞功能的實現(xiàn)(采用系統(tǒng)自帶的api)

-(NSArray *)stringTokenizerWithWord:(NSString *)word{
NSMutableArray *keyWords = [NSMutableArray new];
CFStringTokenizerRef ref = CFStringTokenizerCreate(NULL, (__bridge CFStringRef)word, CFRangeMake(0, word.length),kCFStringTokenizerUnitWord,NULL);
CFRange range;
CFStringTokenizerAdvanceToNextToken(ref);
range=CFStringTokenizerGetCurrentTokenRange(ref);
NSString *keyWord;
while (range.length>0)
{
keyWord=[word substringWithRange:NSMakeRange(range.location, range.length)];
[keyWords addObject:keyWord];
CFStringTokenizerAdvanceToNextToken(ref);
range=CFStringTokenizerGetCurrentTokenRange(ref);
}
return keyWords;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容