現在、View Controller内のtableViewに編集機能を追加しようとしています。
このView Controllerは、MapView(Mapbox)である親ViewControllerの上に追加されます。ジェスチャーに反応しませんUITableVIew editActionsForRow
現在、私は問題なしで垂直スクロールでtableViewを上下にスクロールできます。
しかし、TableViewCellでアクションを呼び出すために水平方向にスワイプすると、マップビューはその位置をスクロールします。
私は、マップビューのスクロールジェスチャーを無視するためにしばらく見つけることができません。
マップのスクロールを無効にしても問題は解決されません。テーブルビューの編集コード:
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
//
}
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let test1 = UITableViewRowAction(style: .normal, title: "Test1") { (_, indexPath) in
}
test1 = UIColor=.red
let test2 = UITableViewRowAction(style: .normal, title: "Test2") { (_, indexPath) in
}
test2 = UIColor.blue
return [test1, test2]
}
とのUIViewControllerはのMapViewの上にテーブルビューを含む追加機能:
self.detailView = UIView(frame: CGRect(x: 0, y: self.view.bounds.height, width: self.view.bounds.width, height: self.view.bounds.height))
self.view.addSubview(self.detailView!)
self.detailViewController = TestViewController()
self.detailViewController!.view.frame = self.view.bounds
self.detailView?.addSubview(self.detailViewController!.view)
self.addChildViewController(self.detailViewController!)
UIView.animate(withDuration: 1.0) {
self.detailView?.frame = self.view.bounds
}
私は自分のアプリで(これは私をもたらした)同様の問題に気付きました。私が知ることから、スワイプの「編集開始」トリガは非常に矛盾しています。画面/テーブルの右端からスワイプを開始すると、私は一番の運があります。私はraywenderlichの記事で、表のセルをスワイプすることについて調べてきましたが、UITableViewRowActionによって廃止されていると主張しています。より良い解決策を見つける運が良かった! – Lytic