objective c - UIViewController Animation ios? -


trying create below in objective-c, available in swift. tried using bridging etc, use code objective c project it's having import issues.

in objective-c tried below things , partially works uiview, guess need add transitions complete uiviewcontroller.

enter image description here

what tried

- (ibaction)menubuttonpressed:(id)sender {     if ([self.delegate respondstoselector:@selector(menubuttonpressed)]) {         [self.delegate menubuttonpressed];     }     if (!isvertical) {         [uiview animatewithduration: 0.6                               delay: 0.0              usingspringwithdamping: 0.3               initialspringvelocity: .8                             options: 0                          animations: ^          {              self.transform = cgaffinetransformtranslate(self.transform, -240, 0);              self.transform = cgaffinetransformrotate(self.transform, 90 * m_pi / 180);              self.transform = cgaffinetransformtranslate(self.transform, 240, 0);          }                          completion:^(bool finished) {                              isvertical = yes;                           }          ];      }else{         [uiview animatewithduration: 0.45                               delay: 0.0              usingspringwithdamping: 0.44               initialspringvelocity: .8                             options: 0                          animations: ^          {              self.transform = cgaffinetransformtranslate(self.transform, -240, 0);              self.transform = cgaffinetransformrotate(self.transform, -90 * m_pi / 180);              self.transform = cgaffinetransformtranslate(self.transform, 240, 0);           }                          completion:^(bool finished) {                              isvertical = no;                           }          ];     } } 

any inputs helpful.

here simple implementation can use animate transitions between view controllers. use same animation gist if want use uiviews.

let generaterandomcolor: void -> uicolor = {     let red = cgfloat(arc4random_uniform(255)) / 255.0     let green = cgfloat(arc4random_uniform(255)) / 255.0     let blue = cgfloat(arc4random_uniform(255)) / 255.0     return uicolor(red:red, green: green, blue: blue, alpha: 1) }  class slideanimationcontroller: nsobject, uiviewcontrolleranimatedtransitioning {     let presenting: bool      init(presenting: bool) {         self.presenting = presenting         super.init()     }      func transitionduration(transitioncontext: uiviewcontrollercontexttransitioning?) -> nstimeinterval {         return 0.5     }      func animatetransition(transitioncontext: uiviewcontrollercontexttransitioning) {         let containerview = transitioncontext.containerview()!          let fromview = transitioncontext.viewforkey(uitransitioncontextfromviewkey)!         let toview = transitioncontext.viewforkey(uitransitioncontexttoviewkey)!          var animatingview: uiview         var initialtransform: cgaffinetransform         var finaltransform: cgaffinetransform          if presenting {             containerview.addsubview(toview)             animatingview = toview             initialtransform = cgaffinetransformmakerotation(cgfloat(-m_pi_2))             finaltransform = cgaffinetransformidentity         } else {             containerview.insertsubview(toview, belowsubview: fromview)             animatingview = fromview             initialtransform = cgaffinetransformidentity             finaltransform = cgaffinetransformmakerotation(cgfloat(-m_pi_2))         }          animatingview.layer.anchorpoint = cgpointmake(0, 0)         animatingview.frame = containerview.bounds         animatingview.transform = initialtransform          uiview.animatewithduration(transitionduration(transitioncontext), delay: 0, usingspringwithdamping: 0.6, initialspringvelocity: 16, options: uiviewanimationoptions.curvelinear, animations: { () -> void in             animatingview.transform = finaltransform             }) {             _ in                 toview.layer.anchorpoint = cgpointmake(0.5, 0.5)                 toview.frame = containerview.bounds                 transitioncontext.completetransition(true)         }     }  }  class presentedviewcontroller: uiviewcontroller {      override func viewdidload() {         super.viewdidload()         view.backgroundcolor = generaterandomcolor()          let tapgesturerecognizer = uitapgesturerecognizer(target: self,             action: "tapped")         view.addgesturerecognizer(tapgesturerecognizer)     }      func tapped() {         dismissviewcontrolleranimated(true, completion: nil)     }  }  class testviewcontroller: uiviewcontroller, uiviewcontrollertransitioningdelegate {      override func viewdidload() {         super.viewdidload()         view.backgroundcolor = generaterandomcolor()         let tapgesturerecognizer = uitapgesturerecognizer(target: self,             action: "tapped")         definespresentationcontext = true         view.addgesturerecognizer(tapgesturerecognizer)     }      func tapped() {         let presentedviewcontroller = presentedviewcontroller()         presentedviewcontroller.modalpresentationstyle = uimodalpresentationstyle.currentcontext         presentedviewcontroller.transitioningdelegate = self         presentviewcontroller(presentedviewcontroller, animated: true, completion: nil)     }      func animationcontrollerforpresentedcontroller(presented: uiviewcontroller, presentingcontroller presenting: uiviewcontroller, sourcecontroller source: uiviewcontroller) -> uiviewcontrolleranimatedtransitioning? {         return slideanimationcontroller(presenting: true)     }      func animationcontrollerfordismissedcontroller(dismissed: uiviewcontroller) -> uiviewcontrolleranimatedtransitioning? {         return slideanimationcontroller(presenting: false)     }  } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -