我尝试使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];
答案 0 :(得分:0)
尝试对视图的superview转换应用90度旋转。这应该会转换视图的坐标空间,因此应用于子视图的卷曲过渡应该在旋转坐标中卷曲。
您可能需要创建多个视图才能防止内容被轮换:
外视图,旋转90度。
中间视图 - 这是获取卷曲过渡的视图
inner view, rotated -90 degrees, and containing your actual content.
我没有尝试过,但这应该有用。
请注意,您切换到的视图必须是中间视图/内部视图组合。