2016-02-01 2 views
0

Я пытаюсь добавить вид маски на мой вид спереди в случае, когда появляется мой вид сзади, и я написал следующий код для него -вид маски не удаляется из супер зрения в случае SWRevealViewController

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) { 

    var maskView = UIView(frame: self.view.bounds) 
     maskView.backgroundColor = UIColor.grayColor() 
     maskView.alpha = 0.5 
     maskView.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
     maskView.addGestureRecognizer(self.revealViewController().tapGestureRecognizer()) 
     if revealController.frontViewPosition == FrontViewPosition.Right 
     { 
      maskView.removeFromSuperview()//this block is called but mask view is not being removed. 
      //maskView.hidden = true 
      print("asdvf") 

     } 

     else if revealController.frontViewPosition == FrontViewPosition.Left 
     { 
      self.view.addSubview(maskView) 

     } 


    } 

Мое представление маски добавляется в супер-вид, но не удаляется из супер-представления, несмотря на вызванный блок удаления. Почему так?

ответ

0
func revealController(_ revealController: SWRevealViewController!, didMoveTo position: FrontViewPosition) { 
    if(position == FrontViewPosition.right) { 

     let maskView = UIView(frame: self.view.frame) 
     maskView.backgroundColor = UIColor.clear 
     maskView.translatesAutoresizingMaskIntoConstraints = false 
     let tap = UITapGestureRecognizer(target: revealController, action: #selector(SWRevealViewController.revealToggle(_:))) 
     maskView.addGestureRecognizer(tap) 
     maskView.addGestureRecognizer(revealController.panGestureRecognizer()) 
     maskView.tag = 1000 
     revealController.frontViewController.view.addSubview(maskView) 
     maskView.sizeToFit() 
    } else { 
      revealController.frontViewController.view.viewWithTag(1000)?.removeFromSuperview() 
    } 
}