2017-09-04 22 views
0

저는 UITableView입니다. UIAlertViewUILongPressGestureRecognizer에 표시하고 싶습니다.신속한 3에서 손가락 리프트가 해제되기 전에 UIAlertView를 만드는 방법은 무엇입니까?

잘 작동합니다. 화면이 보이기 위해 손가락을 들어야합니다.

손가락이 화면에 있어도 0.5 초 후에 나타날 수있는 방법이 있습니까? UILongPressGestureRecognizer의 자산을 가지고 계십니까?

편집 :

나 자신에 의해 문제를 본 적이 사실
class Settings: UIViewController , UITableViewDataSource, UITableViewDelegate { 
override func viewDidLoad() { 
    super.viewDidLoad() 

    let longPress = UILongPressGestureRecognizer(target: self, action: #selector(Settings.deleteItem)) 
    self.tableView.addGestureRecognizer(longPress) 
} 

func deleteItem(longPress:UIGestureRecognizer) { 
    if longPress.state == UIGestureRecognizerState.ended { 
     let pressedLocation = longPress.location(in: self.tableView) 
     if let pressedIndexPath = tableView.indexPathForRow(at: pressedLocation) { //Give the row where it's touched 

      RowSelected = (actionList?[pressedIndexPath[1]])! 
      print(RowSelected) 
      longtouched = pressedIndexPath[1] 
      let alert = UIAlertController(title: "What do you want to do?", message: "Select the action you want to do.", preferredStyle: UIAlertControllerStyle.alert) 

      let Cancel = UIAlertAction(title: "Cancel", style: .default) { actio in 
       print("Canceled") 
      } 


      let Delete = UIAlertAction(title: "Delete", style: .default) { actio in 
       //DOING MY STUFF 

      } 

      let Modify = UIAlertAction(title: "Modify", style: .default) { actio in 
       UserDefaults.standard.set(self.longtouched, forKey: "modify") 
       self.performSegue(withIdentifier: "ToModify", sender: self) 
      } 
      alert.addAction(Modify) 
      alert.addAction(Delete) 
      alert.addAction(Cancel) 
      self.present(alert, animated: true, completion: nil) 
     } 
    } 
} 
+0

@ Anbu.Karthik : 방금했지만 내 문제를 파악했습니다. 'longPress.state == UIGestureRecognizerState.ended'를'if longPress.state == UIGestureRecognizerState.began'으로 변경해야만 트릭을 만들었습니다. 월요일 아침 눈으로 내 코드를 검색 한 후 시간이 지났음을 알 수 있습니다./ 감사합니다. – Hawkydoky

+0

thats 내 모든 친구 congrtz –

+0

긴 프레스 제스처가 선택자를 트리거 한 후 0.5 초 후에 경고를 표시 하시겠습니까? – thxou

답변

0

.

누군가가 동일한 문제에 직면 한 경우 if longPress.state == UIGestureRecognizerState.endedif longPress.state == UIGestureRecognizerState.began 으로 변경했습니다. 트릭을 수행합니다.