1

我已经编写了一些代码来将图像视图旋转 90 度然后翻转它。然而,翻转似乎切断了一半的图像。为什么会这样?

UIImageView *tempView = [[UIImageView alloc] initWithFrame:button.frame];
    tempView.image = [UIImage imageNamed:@"propertyCard.png"];
    //tempView.backgroundColor = [UIColor redColor];
    tempView.opaque = YES;
    [self.view addSubview:tempView];

    [UIView animateWithDuration: 1
                          delay: 0
                        options: UIViewAnimationOptionBeginFromCurrentState
                     animations:^{

                         // rotate
                         tempView.layer.transform = CATransform3DMakeRotation(M_PI /2, 0., 0, 1);                        
                     }
                     completion:^(BOOL finished) {

                         [self showPropertyViews];

                         [UIView animateWithDuration: 1 
                                               delay: 0
                                             options: UIViewAnimationOptionBeginFromCurrentState
                                          animations:^{

                                              // flip
                                              tempView.layer.transform = CATransform3DMakeRotation(M_PI, 1.0,1.0,0.0);

                                          }
                                          completion:^(BOOL finished) {


                                              [UIView animateWithDuration: 1
                                                                    delay: 0
                                                                  options: UIViewAnimationOptionBeginFromCurrentState
                                                               animations:^{

                                                                  tempView.frame = CGRectMake(propertyView.frame.origin.y + 12, propertyView.frame.origin.x +12, propertyView.frame.size.height-20, propertyView.frame.size.width-20);
                                                                  tempView.center = propertyView.center;
                                                               }
                                                               completion:^(BOOL finished) {

                                                                   tempView.hidden = YES;
                                                                   propertyView.hidden = NO;
                                                                   propertyView.alpha = 1;
                                                                   [self displayCoverFlow];

                                                                   [tempView removeFromSuperview];
                                                                   [tempView release];



                                                               }];
                                              }];

                     }];
4

1 回答 1

8

当您的视图几乎垂直于屏幕转动时,较远的一半将被视图层次结构中的一些其他视图覆盖。尝试为动画视图设置一些“足够大”的 Z 值,例如:

myView.layer.zPosition = 1000.0;
于 2012-10-16T15:52:56.077 回答