iOS Swift: распространяет события Swipe от контроллера nester к нижележащему контроллеру - PullRequest
0 голосов
/ 18 мая 2019

У меня есть вложенный UIViewController, который покрывает половину экрана.

Под этим контроллером находится родительский ViewController.

Я хотел бы распространять только события бокового свипа на нижний (родительский) контроллер.

Я думаю, что я должен использоватьследующий func

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    return (my test)
    })
  }

, но я также знаю, что этот функционал следует применять к UIView, а не к UIViewController.Так что я застрял и не знаю, что делать дальше.

1 Ответ

0 голосов
/ 18 мая 2019

Вы можете создать

class SomeView:UIView {
   override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
     return  true/false
   }
}

и назначить его дочернему vc'view в IB, вы также можете реализовать это внутри vc

override func touchesBegan(_ touches: Set<AnyHashable>, withEvent event: UIEvent) {
    var touch: UITouch? = touches.first
    //location is relative to the current view
    // do something with the touched point
    if touch?.view == childVC.view { 
    }
}

Edit:

для распространения действий смахивания на родителя, добавления делегата и смахивания с дочерним действием, а также при запуске уведомить родителя с делегатом

...