前言
本文主要給大家介紹了關(guān)于iOS11解決UITableView側(cè)滑刪除無(wú)限拉伸的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{ ...}
iOS11如果仍然用以上方法處理側(cè)滑刪除功能,但是會(huì)發(fā)現(xiàn)側(cè)滑無(wú)限拉伸,然后自動(dòng)調(diào)用刪除方法
iOS11新增了方法
- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)){ if (@available(iOS 11.0, *)) { NSString *title = @"置頂"; if (indexPath.section == 0) { title = @"取消置頂"; } else { title = @"置頂"; } UIContextualAction *topAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:title handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { ... // 這句很重要,退出編輯模式,隱藏左滑菜單 [tableView setEditing:NO animated:YES]; completionHandler(true); }]; UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"刪除" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { // 這句很重要,退出編輯模式,隱藏左滑菜單 [tableView setEditing:NO animated:YES]; completionHandler(true); }]; UISwipeActionsConfiguration *actions = [UISwipeActionsConfiguration configurationWithActions:@[deleteAction,topAction]]; // 禁止側(cè)滑無(wú)線拉伸 actions.performsFirstActionWithFullSwipe = NO; return actions; }else{ return nil; }}
iOS11之前,并不會(huì)發(fā)生側(cè)滑無(wú)線拉伸
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選