0

ページ カール アニメーションを機能させるのは簡単です。

CATransition *transition = [CATransition animation];
[transition setDelegate:self];
[transition setDuration:0.5f];
[transition setType:@"pageCurl"];
[transition setSubtype:landscape ? @"fromBottom" : @"fromRight"];
[self.view.layer addAnimation:transition forKey:@"CurlAnim"];

しかし、私の上司は、横向きのときに(iBooksのように)中央から回転させるように私に望んでいます。UIPageViewController縦向きで2ページをスクロールする必要があり、横向きとスクロールで2ページを一度に拡大する必要があるため、使用できません。これを行う方法はありますか?現在は、ビュー全体を巨大な横向きのページのようにカールさせているだけです。2層なので簡単にできる方法はないかと思いますが、聞いてみようと思いました。

4

2 に答える 2

1

また、UIScrollerView 内で UIPageViewController を使用することはできませんか?

これを行うと、両方のページを拡大/縮小できます。

唯一の問題は、ズーム = 1 でない限りページを変更できないことです。

于 2012-09-03T12:44:21.267 に答える
0

UIPageViewController に横向きと縦向きの両方で 2 つのページを表示させ、UIScrollerView 内に配置する場合は、まだこれについて考えています。横向きの場合、2 ページが表示され、ズームして期待どおりに動作します。縦向きの場合、UIPageViewController frame.width を 1 ページの 2 倍にし、UIScrollerView contentSize を UIPageViewController と同じ幅にしますが、UIScrollerView フレーム幅はページと同じ幅にします。これを行うと、ページのみが表示され、2 番目にスクロールできます。私は横向きでテストして正常に動作しましたが、縦向きではいくつか問題があり、ページを変更するスワイプは内側からは機能しませんが、これは外側から機能します (そのため、_zoomer.frame = CGRectMake(10,10,widht を設定します) ,height)、UIPageViewController の周りに 10 ポイントのフレームを配置して、そこからスワイプします),

画面の回転で使用するコードで、iPad 専用です。

 - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
CGRect pageViewRect;
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
    pageViewRect = CGRectMake(0,0,1496,984);
    _zoomer.contentSize=CGSizeMake(1496, 984);
    _zoomer.frame = CGRectMake(10,10,748,984);
    self.pageViewController.view.frame = pageViewRect;
} else {
    pageViewRect = CGRectMake(0,0,1004,728);
    _zoomer.frame = CGRectMake(10,10,1004,728);
    _zoomer.contentSize=CGSizeMake(1004, 728);
    self.pageViewController.view.frame = pageViewRect;
}
}

_zoomer は UIScrollerView です

于 2012-09-04T07:38:37.120 に答える