UIView animation problem

Posted by FoJjen on Stack Overflow See other posts from Stack Overflow or by FoJjen
Published on 2011-01-07T00:50:55Z Indexed on 2011/01/07 0:53 UTC
Read the original article Hit count: 209

Filed under:
|

I try to make a UIImageView open like a hatch, and under the "hatchView" its anoter imageView but when I start the animation its like the view under gets over and cover the animation, When the animation gets over the imageView the its getting visibel. its works fine if a remove the imageView thats under.

Here is the code for animation view.

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *) event {

 if (!isHatchOpen) { 

  if (hatchView.layer.anchorPoint.x != 0.0f) {
   hatchView.layer.anchorPoint = CGPointMake(0.0f, 0.5f);
   hatchView.center = CGPointMake(hatchView.center.x - hatchView.bounds.size.width/2.0f, hatchView.center.y);
  } 

  UITouch *touch = [touches anyObject];
  CGPoint location = [touch locationInView:hatchView];

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1];
  [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
  [UIView setAnimationBeginsFromCurrentState:YES];


  float pct = location.x / 320.0f;
  float rad = acosf(pct);

  CATransform3D transform = CATransform3DMakeRotation(-rad+5, 0.0f, -1.0f, 0.0f);
  transform.m14 = (1.0 / -2000) * acosf(pct);

  hatchView.layer.transform = transform;

  [UIView commitAnimations];
  isHatchOpen = YES;
 } else {
  if (hatchView.layer.anchorPoint.x != 0.0f) {
   hatchView.layer.anchorPoint = CGPointMake(0.0f, 0.5f);
   hatchView.center = CGPointMake(hatchView.center.x - hatchView.bounds.size.width/2.0f, hatchView.center.y);
  } 


  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1];
  [UIView setAnimationCurve:UIViewAnimationCurveLinear];
  [UIView setAnimationBeginsFromCurrentState:YES];

  CATransform3D transform = CATransform3DMakeRotation(0, 0.0f, -1.0f, 0.0f);
  transform.m14 = 0;

  hatchView.layer.transform = transform;

  // Commit the changes
  [UIView commitAnimations];
  isHatchOpen = NO;
     } 
    }

And here a add the Views

hatchView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 1, frame.size.width-1, frame.size.height-2)];

  [self addSubview:hatchView];

  imageView = [[UIImageView alloc] initWithFrame:CGRectMake(1, 1, frame.size.width-2, frame.size.height-2)];
  imageView.contentMode = UIViewContentModeScaleAspectFit;
  [self insertSubview:imageView belowSubview:hatchView];

© Stack Overflow or respective owner

Related posts about iphone

Related posts about uiviewanimation