Search Results

Search found 13 results on 1 pages for 'caanimation'.

Page 1/1 | 1 

  • Seek backwards and forward in CAAnimation

    - by Vladimir
    I'm trying to create a pseudo-movie player that shows layer's CAAnimation in my application. I've found a way to pause and resume animation (described in apple tech note), but can't find if it is possible to "seek" to arbitrary part of the animation, could anyone suggest what can be done here?

    Read the article

  • Issue with CAAnimation and CALayer Transforms

    - by Brian
    I have a CALayer that I want to animate across the screen. I have created two methods: one slide open the layer and one to slide close. These both work by assigning a property to the layer's transform property. Now I want to use a CAKeyFrameAnimation to slide open the layer. I got this working so the layer slides open, but now I can't slide the layer close using my old method. I am trying to figure out why this is. Any help would be great. Code: - (id)init { if( self = [super init] ) { bIsOpen = NO; closeTransform = self.transform; openTransform = CATransform3DMakeTranslation(-235.0, 0.0, 0.0); } return self; } - (void)closeMenu { if( bIsOpen ) { self.transform = closeTransform; bIsOpen = !bIsOpen; } } - (void)openMenu { if( !bIsOpen ) { CAKeyframeAnimation *closeAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; closeAnimation.duration = 1.0; closeAnimation.removedOnCompletion = NO; closeAnimation.fillMode = kCAFillModeForwards; closeAnimation.values = [NSArray arrayWithObjects:[NSValue valueWithCATransform3D:closeTransform],[NSValue valueWithCATransform3D:openTransform],nil]; closeAnimation.timingFunctions = [NSArray arrayWithObject:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; [self addAnimation:closeAnimation forKey:@"transform"]; bIsOpen = !bIsOpen; } }

    Read the article

  • CAAnimation rotation did not give last stage?

    - by Mikhail Naimy
    hi, i am using following code to rotate the UIView through Swipe gesture .it works fine.but after rotation, it goes to beginning angle or Fromvalue.anyone can help to stop the view in last stage.if i rotate again, it must go from last stage. rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.fromValue = [NSNumber numberWithFloat:0.0 * M_PI]; rotationAnimation.toValue = [NSNumber numberWithFloat:0.5 * M_PI]; //rotationAnimation.toValue = [NSNumber numberWithFloat: 2.5 * 3.15 ]; rotationAnimation.duration = 1.5; //rotationAnimation.cumulative = YES; rotationAnimation.removedOnCompletion = NO; rotationAnimation.repeatCount = 0.0; rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; [self.view.layer addAnimation:rotationAnimation forKey:@"rotationAnimate"];

    Read the article

  • iphone: how to do Page turning

    - by srnm12
    hi frnds, I am facing the problem from a month and didn't find anything from google.. I am using UIView for pdf display. there is no problem with pdf but problem is with transition. I have to turn each page of pdf with realistic page turn exp. I search, dig a lot about that but i didn't get anything that how to do that. I don't want to use any API'S like codeflake or any other. all i want to do this by my own programming. First i read that this can be done using cocos2d or CAAnimation but i want to know how? b'coz realistic page i think so is completely 3d concept. Let me know guys how to do thay?? here's the example video: http://www.youtube.com/watch?v=oknMWvRO2XE I want animation just like in video....

    Read the article

  • New CATransform3DMakeRotation deletes old transformation?!

    - by david
    I added a CATransform3DMakeRotation to a layer. When I add another one it deletes the old one? The first one: [UIView beginAnimations:@"rotaty" context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationDelegate:self]; CGAffineTransform transform = CGAffineTransformMakeRotation(-3.14); kuvert.transform = CGAffineTransformRotate(transform, DegreesToRadians(134)); kuvert.center = CGPointMake(kuvert.center.x-70, kuvert.center.y+100); [UIView commitAnimations]; and the second one: CABasicAnimation *topAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; topAnim.duration=1; topAnim.repeatCount=0; topAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0.0, 0, 0, 0)]; float f = DegreesToRadians(180); // -M_PI/1; topAnim.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeRotation(f, 0,1, 0)]; topAnim.delegate = self; topAnim.removedOnCompletion = NO; topAnim.fillMode = kCAFillModeBoth; [topAnim setValue:@"flippy" forKey:@"AnimationName"]; [[KuvertLasche layer] addAnimation:topAnim forKey:@"flippy"]; The second one resets the view and applies itself after that. How do I fix this??

    Read the article

  • UIScrollView content to track a CAKeyFrameAnimation along a path

    - by CMLloyd
    In my App I have a full-screen UIScrollView where the content is a UIImageView containing a map image which is about 2000px square (i.e. larger than the UIScrollView). Currently, I plot a path across the map and animate a "beacon" image along it using a CAKeyFrameAnimation, which works great. What I would like to be able to do is to make the UIScrollView content move with the animation in such a way as to keep the beacon image in the centre of the screen (giving the user the impression of tracking along the path). Any suggestions on how I might achieve this?

    Read the article

  • Animating multiple UIViews at once using CoreAnimation

    - by Thomas
    Hi, I'm using a UIImageView as a background-image and placed multiple UIButtons on it. Now I want to move the UIImageView (with all the buttons on it) out of sight with a smooth animation. I couldn't find a container or grouping element in IB, so is there a way to move all the Views at once? Thank you in advance and sorry for my english!

    Read the article

  • CABasicAnimation not scrolling with rest of View

    - by morgman
    All, I'm working on reproducing the pulsing Blue circle effect that the map uses to show your own location... I layered a UIView over a MKMapView. The UIView contains the pulsing animation. I ended up using the following code gleaned from numerous answers here on stackoverflow: CABasicAnimation* pulseAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; pulseAnimation.toValue = [NSNumber numberWithFloat: 0.0]; pulseAnimation.duration = 1.0; pulseAnimation.repeatCount = HUGE_VALF; pulseAnimation.autoreverses = YES; pulseAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [self.layer addAnimation:pulseAnimation forKey:@"pulseAnimation"]; CABasicAnimation* resizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size"]; resizeAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(0.0f, 0.0f)]; resizeAnimation.fillMode = kCAFillModeBoth; resizeAnimation.duration = 1.0; resizeAnimation.repeatCount = HUGE_VALF; resizeAnimation.autoreverses = YES; resizeAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [self.layer addAnimation:resizeAnimation forKey:@"resizeAnimation"]; This does an acceptable job of pulsing/fading a circle I drew in the UIView using: CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 0.4); // And draw with a blue fill color CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 0.1); // Draw them with a 2.0 stroke width so they are a bit more visible. CGContextSetLineWidth(context, 2.0); CGContextAddEllipseInRect(context, CGRectMake(x-30, y-30, 60.0, 60.0)); CGContextDrawPath(context, kCGPathFillStroke); But I soon found that while this appears to work, as soon as I drag the underlying map to another position the animation screws up... While the position I want highlighted is centered on the screen the animation works ok, once I've dragged the position so it's no longer centered the animation now pulses starting at the center of the screen scaling up to center on the position dragged off center, and back again... A humorous and cool effect, but not what I was looking for. I realize I may have been lucky on several fronts. I'm not sure what I misunderstood. I think the animation is scaling the entire layer which just happens to have my circle drawn in the middle of it. So it works when centered but not when off center. I tried the following gleaned from one of the questions suggested by stackoverflow when I started this question: CABasicAnimation* translateAnimation = [CABasicAnimation animationWithKeyPath:@"position"]; translateAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(oldx, oldy )]; translateAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(x, y )]; // translateAnimation.fillMode = kCAFillModeBoth; translateAnimation.duration = 1.0; translateAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [self.layer addAnimation:translateAnimation forKey:@"translateAnimation"]; But it doesn't help much, when I play with it sometimes it looks like once time it animates in the correct spot after I've moved it offcenter, but then it switches back to the animating from the center point to the new location. Sooo, any suggestions or do I need to provide additional information.

    Read the article

  • Maintaining last stage when rotating through CATransform3DIdentity

    - by Mikhail Naimy
    Hi. i am rotating imageview through following code.it rotates fine..but when i rotate again , Imageview goes to previous angle( which is in initial stage) and then it rotates...any one can help in this?rotationTransform has been declared as CABasicAnimation* rotationAnimation in .h file.... - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { UITouch *touch = [touches anyObject]; startTouchPosition = [touch locationInView:self.view]; } - (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { UITouch *touch = [[event allTouches] anyObject]; location = [touch locationInView:self.view]; currentLocationRadians = atan2f(location.y - self.view.frame.size.height/2, location.x - self.view.frame.size.width/2); lastLocationRadians = atan2f(startTouchPosition.y - self.view.frame.size.height/2, startTouchPosition.x - self.view.frame.size.width/2); rotationTransform = CATransform3DIdentity; rotationTransform = CATransform3DRotate(rotationTransform, currentLocationRadians-lastLocationRadians + rad, 0.0, 0.0, 1.0); _imgview.layer.transform = rotationTransform; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { rotationTransform = _imgview.layer.transform; }

    Read the article

  • How to permanently leave a CALayer rotated at its final location?

    - by David
    Hello, I am trying to rotate a CALayer to a specific angle however, once the animation is done, the layer jumps back to its original position. How would I rotate the layer properly so that it stays at its final destination? Here is the code that I am using CABasicAnimation *rotationAnimation =[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; //Rotate about z-axis [rotationAnimation setFromValue:[NSNumber numberWithFloat:fromDegree]]; [rotationAnimation setToValue:[NSNumber numberWithFloat:toDegree]]; [rotationAnimation setDuration:0.2]; [rotationAnimation setRemovedOnCompletion:YES]; [rotationAnimation setFillMode:kCAFillModeForwards]; Any suggestions? Thank you.

    Read the article

  • Retrieve the CAKeyframeAnimationKey's key in AnimationDidStop

    - by JacktheSparrow
    I have multiple CAKeyframeAnimation objects, each with a unique key like the following: ..... [myAnimation setValues:images]; [myAnimation setDuration:1]; .... [myLayer addAnimation:myAnimation forKey:@"unique key"]; My question is, if I have multiple animation like this and each with a unique key, how do I retrieve their keys in the method AnimationDidStop? I want to be able to do something like this: -(void)animationDidStop:(CAAnimation*)animation finished:(BOOL)flag{ if(..... ==@"uniquekey1"){ //code to handle this specific animation here: }else if(.... ==@"uiquekey2"){ //code to handle this specific animation here: } }

    Read the article

  • Chaining animations and memory management

    - by bryan1967
    Hey Everyone, Got a question. I have a subclassed UIView that is acting as my background where I am scrolling the ground. The code is working really nice and according to the Instrumentation, I am not leaking nor is my created and still living Object allocation growing. I have discovered else where in my application that adding an animation to a UIImageView that is owned by my subclassed UIView seems to bump up my retain count and removing all animations when I am done drops it back down. My question is this, when you add an animation to a layer with a key, I am assuming that if there is already a used animation in that entry position in the backing dictionary that it is released and goes into the autorelease pool? For example: - (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag { NSString *keyValue = [theAnimation valueForKey:@"name"]; if ( [keyValue isEqual:@"step1"] && flag ) { groundImageView2.layer.position = endPos; CABasicAnimation *position = [CABasicAnimation animationWithKeyPath:@"position"]; position.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; position.toValue = [NSValue valueWithCGPoint:midEndPos]; position.duration = (kGroundSpeed/3.8); position.fillMode = kCAFillModeForwards; [position setDelegate:self]; [position setRemovedOnCompletion:NO]; [position setValue:@"step2-1" forKey:@"name"]; [groundImageView2.layer addAnimation:position forKey:@"positionAnimation"]; groundImageView1.layer.position = startPos; position = [CABasicAnimation animationWithKeyPath:@"position"]; position.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; position.toValue = [NSValue valueWithCGPoint:midStartPos]; position.duration = (kGroundSpeed/3.8); position.fillMode = kCAFillModeForwards; [position setDelegate:self]; [position setRemovedOnCompletion:NO]; [position setValue:@"step2-2" forKey:@"name"]; [groundImageView1.layer addAnimation:position forKey:@"positionAnimation"]; } else if ( [keyValue isEqual:@"step2-2"] && flag ) { groundImageView1.layer.position = midStartPos; CABasicAnimation *position = [CABasicAnimation animationWithKeyPath:@"position"]; position.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; position.toValue = [NSValue valueWithCGPoint:endPos]; position.duration = 12; position.fillMode = kCAFillModeForwards; [position setDelegate:self]; [position setRemovedOnCompletion:NO]; [position setValue:@"step1" forKey:@"name"]; [groundImageView1.layer addAnimation:position forKey:@"positionAnimation"]; } } This chains animations infinitely, and as I said one it is running the created and living object allocation doesn't change. I am assuming everytime I add an animation the one that exists in that key position is released. Just wondering I am correct. Also, I am relatively new to Core Animation. I tried to play around with re-using the animations but got a little impatient. Is it possible to reuse animations? Thanks! Bryan

    Read the article

1