UIViewAnimationTransitionCurlUp水平工作

时间:2011-08-26 08:47:33

标签: ios uiview uiviewanimation uiviewanimationtransition

我尝试使UIViewAnimationTransitionCurlUp水平工作,因此,我旋转应用动画的视图。但是没有奏效,动画从底部停留到顶部。有什么想法吗?

first = [[PDFPortraitView alloc] initWithFrame:CGRectMake(0, 0, 960, 768) andCurrentPage:currentPage];
    container = [[UIView alloc] initWithFrame:CGRectMake(-96, 140, 960, 768)];
    container.backgroundColor = [UIColor redColor];
    container.transform = CGAffineTransformMakeRotation(M_PI * (0.5));
    [self.view addSubview:container];
    [container addSubview:first];


    second = [[PDFPortraitView alloc] initWithFrame:CGRectMake(0, 0, 960, 768) andCurrentPage:currentPage];


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.5f];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:container cache:NO];
    [first removeFromSuperview];
    [container addSubview:second];
    [UIView commitAnimations];

1 个答案:

答案 0 :(得分:0)

尝试对视图的superview转换应用90度旋转。这应该会转换视图的坐标空间,因此应用于子视图的卷曲过渡应该在旋转坐标中卷曲。

您可能需要创建多个视图才能防止内容被轮换:

外视图,旋转90度。

中间视图 - 这是获取卷曲过渡的视图

   inner view, rotated -90 degrees, and containing your actual content.

我没有尝试过,但这应该有用。

请注意,您切换到的视图必须是中间视图/内部视图组合。