ios - Animate UIView with the default UINavigationInteractiveTransition interactive -


in app animate uiview along default uinavigationinteractivetransition. it's working charm when don't use interactive pangesture.

is there way react current state of interactive animation via uiviewcontrollertransitioncoordinator?

for implementation details see playground created:

//: playground - noun: place people can play  import uikit import xcplayground  class customnavigationcontroller: uinavigationcontroller {      var customview: uiview!      override func viewdidload() {         customview = uiview(frame: cgrect(x: 0, y: 400, width: 300, height: 300))         customview.backgroundcolor = uicolor.redcolor()          view.addsubview(customview)     } }  class customviewcontroller: uiviewcontroller {      var dismissbutton: uibutton!      dynamic func dismisscustomviewcontroller() {         navigationcontroller?.popviewcontrolleranimated(true)     }      override func viewwilldisappear(animated: bool) {         super.viewwilldisappear(animated)          transitioncoordinator()?.animatealongsidetransition({ (context) in             (self.navigationcontroller as? customnavigationcontroller)?.customview.backgroundcolor = uicolor.redcolor()             }, completion: { (context) in                 // not implemented         })     }      override func viewwillappear(animated: bool) {         super.viewwillappear(animated)          transitioncoordinator()?.animatealongsidetransition({ (context) in             (self.navigationcontroller as? customnavigationcontroller)?.customview.backgroundcolor = uicolor.yellowcolor()             }, completion: { (context) in                 // not implemented         })     }      override func viewdidload() {          title = "second controller"         view.backgroundcolor = uicolor.purplecolor()          dismissbutton = addbutton(withtitle: "dismiss controller", andselector: #selector(dismisscustomviewcontroller))     } }  class firstviewcontroller: uiviewcontroller {      var pushbutton: uibutton!      dynamic func pushcustomviewcontroller() {         let customviewcontrolelr = customviewcontroller()         navigationcontroller?.pushviewcontroller(customviewcontrolelr, animated: true)     }      override func viewdidload() {          title = "firstcontroller"          view.backgroundcolor = uicolor.whitecolor()          pushbutton = addbutton(withtitle: "push controller", andselector: #selector(pushcustomviewcontroller))     } }  extension uiviewcontroller {      func addbutton(withtitle title: string, andselector selector: selector) -> uibutton {          let button = uibutton(type: .custom)         button.settitle(title, forstate: .normal)         button.settitlecolor(uicolor.blackcolor(), forstate: .normal)         button.translatesautoresizingmaskintoconstraints = false         button.addtarget(self, action: selector, forcontrolevents: .touchupinside)          view.addsubview(button)          let views = ["button" : button]          let constraintsh = nslayoutconstraint.constraintswithvisualformat("h:|-20-[button]-20-|", options: [], metrics: nil, views: views)         let constraintsv = nslayoutconstraint.constraintswithvisualformat("v:|-100-[button(60)]", options: [], metrics: nil, views: views)         view.addconstraints(constraintsh)         view.addconstraints(constraintsv)          return button     } }  let firstviewcontroller = firstviewcontroller() let navcontroller = customnavigationcontroller(rootviewcontroller: firstviewcontroller)   xcplaygroundpage.currentpage.liveview = navcontroller.view 


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -