ちょっとしたコードや設定などですが、忘れがちであらためて調べるのも面倒なので、忘備録的なものです。
順不同で、気づいたものから順にSwift4で使えるコードを載せていきます。
Swift-Tips
スワイプして削除を有効に
・行ごとの左スワイプを有効にする
・スワイプ時に表示する文字列と実行する処理を設定
・削除以外の処理を複数割り当てる場合もあるので、あらかじめそれを考慮した処理にしておく
// 行ごとの左スワイプを有効にする
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
// スワイプ時に表示する文字列と実行する処理を設定
// 複数設定する場合もあるのでこちらを利用
override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteTitle:String = NSLocalizedString("Delete", tableName: "Message", comment: "削除")
let delete: UITableViewRowAction = UITableViewRowAction(style: .normal, title: deleteTitle) { (action, index) -> Void in
self.removeConfirm(indexPath.row)
}
delete.backgroundColor = NC_014_KARAKURENAI
return [delete]
}
// 削除実行時に呼び出す関数
// データを削除
// テーブルビューをリロード
func removeEntry(_ index:Int) {
appDl.removeAudioFile(appDl.entries[index].audioFilePath)
appDl.entries.remove(at: index)
appDl.saveEntriesToJson()
tvMainList.reloadData()
}
// 削除実行するかを確認
func removeConfirm(_ index:Int) {
let alertController = UIAlertController(
title: NSLocalizedString("Delete entry", tableName: "Message", comment: "エントリーの削除"),
message: NSLocalizedString("delete-confirm-message", tableName: "Message",value: "Delete the data completely. Is it OK?", comment: "データを完全に削除します。よろしいですか?"),
preferredStyle: .alert)
let defaultAction:UIAlertAction = UIAlertAction(title: "OK",
style: UIAlertActionStyle.destructive,
handler:{
(action:UIAlertAction!) -> Void in
self.removeEntry(index)
})
alertController.addAction(defaultAction)
let cancelAction = UIAlertAction(
title: NSLocalizedString("Cancel", tableName: "Message", comment: "キャンセル"),
style: .cancel, handler:nil)
alertController.addAction(cancelAction)
alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.frame
present(alertController, animated: true, completion: nil)
}
最近のコメント
Android版もできました! に ひよこボタン子育て応援アプリの使い方!音は周囲に迷惑なのか?いのっち発案 │ ある主婦の徒然なるままに より