2

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];
4

1 に答える 1

0

ビューのスーパービューの変換に90度の回転を適用してみてください。これにより、ビューの座標空間が変換されるため、子ビューに適用されるカールトランジションは、回転した座標でカールする必要があります。

コンテンツが回転しないようにするには、複数のビューを作成する必要がある場合があります。

外観、90度回転。

中央のビュー-これはカール遷移を取得するビューです

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

私はそれを試していませんが、それはうまくいくはずです。

切り替えるビューは、ミドルビュー/インナービューの組み合わせである必要があることに注意してください。

于 2012-05-17T00:05:22.697 に答える