ios - UIViewController half screen "drawer slide" animation -
i trying have uiviewcontroller
appears "slide" animation right. not push segue, not facebook app. want new viewcontroller slide on top of current 1 (not push away), cover part of screen, leaving other part showing first viewcontroller.
what have tried: closest have gotten creating custom segue following:
- (void)perform { __block uiviewcontroller *src = (uiviewcontroller *) self.sourceviewcontroller; __block uiviewcontroller *dst = (uiviewcontroller *) self.destinationviewcontroller; catransition* transition = [catransition animation]; transition.duration = .50; transition.timingfunction = [camediatimingfunction functionwithname:kcamediatimingfunctioneaseineaseout]; transition.type = kcatransitionmovein; transition.subtype = kcatransitionfromright; [src.navigationcontroller.view.layer addanimation:transition forkey:@"switchtoview1"]; [src.navigationcontroller pushviewcontroller:dst animated:no]; }
this achieves animation going for, covers entire first viewcontroller. how make stop @ point , not cover entire thing?
i using storyboards, , first time trying sort of new animation.
you can try doing in source view controller, , changing frame destnation (the x axis) like:
- (void) perform { uiviewcontroller *dst = (uiviewcontroller *) self.destinationviewcontroller; [dst.view setframe:cgrectmake(160, 0, your_dst_width, your_dst_height)]; //your animation stuff... [self addchildviewcontroller:dst]; [self.view addsubview:dst.view]; [dst didmovetoparentviewcontroller:self]; }
and should it!
let me know if didn't...
update!:
@captjak hey, sorry didn't work out you.. wrote following code, , works without problems here.. linked button click.. try , let me know! (ps: added animations too!).
viewcontroller *tlc = [self.storyboard instantiateviewcontrollerwithidentifier:@"mainviewcontroller"]; [tlc.view setframe:cgrectmake(-320, 0, self.view.frame.size.width, self.view.frame.size.height)]; [self addchildviewcontroller:tlc]; [self.view addsubview:tlc.view]; [tlc didmovetoparentviewcontroller:self]; [uiview animatewithduration:0.3 animations:^{ [tlc.view setframe:cgrectmake(-160, 0, self.view.frame.size.width, self.view.frame.size.height)]; }];
Comments
Post a Comment