2017-11-28 8 views
3

私はSwift 4を使用してiOSアプリケーションを作成していますが、私はストーリーボードを使用していません。 テーブルビューコントローラーから行を削除するには、ユーザーがスワイプして行を残し、削除ボタンをクリックします。行のスワイプアクション設定でVoiceOverのアクセシビリティラベルを追加するにはどうすればよいですか?

override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { 
    self.isAccessibilityElement = true 
    self.accessibilityLabel = "Delete row" 


    let deleteAction = UIContextualAction(style: .normal , title: "DELETE") { (action, view, handler) in 

     self.removeRowFromMyList(indexPath: indexPath.row) 

     MyListController.stations.remove(at: indexPath.row) 
     self.tableView.deleteRows(at: [indexPath], with: .automatic) 

     self.tableView.setEditing(false, animated: true) 
     self.tableView.reloadData() 
    } 
    let swipeAction = UISwipeActionsConfiguration(actions: [deleteAction]) 
    swipeAction.performsFirstActionWithFullSwipe = false 

    return swipeAction 
} 

私は他の質問を確認しなかったし、それらのどれもがそれに対処していない:ここで

は、私は(外部ライブラリが使用されていない)ことを実装するために使用しているコードです。 この問題を解決するために必要なその他の情報については、お気軽にここにコメントしてください。 感謝:)あなただけのアクセシビリティカスタムアクションを設定する必要がアップル

によってUIAccessibilityからアクセシビリティカスタムアクションを使用して

答えて

1

cell.accessibilityCustomActions = [UIAccessibilityCustomAction(name: "Delete", target: self, selector: #selector(theCustomAction))] 


@objc private func theCustomAction() -> Bool { 
    //Do anything you want here 
    return true 
} 

更新:

だから私は、プロジェクトを再作成なかったです今回はストーリーボードを使用していました(私は最後ではありませんでした)、CocoapodsからSwipeCellKit Libraryをインポートして、私はそのドキュメンテーションに従いましたVoiceOverはindexPath.rowから問題のないセルを削除すると完全に正常に動作していました。

+0

ここでの問題は、indexPath.rowをcustomAction()に渡すことができないことです。 – Pavlos

関連する問題