2

本のようなアプリを作成する必要があり、UIPageViewController を使用したいと考えています。(iPad、2 ページの水平レイアウト (UIPageViewControllerSpineLocationMid)。

画面をより魅力的にするために、コントローラーのビューを画像または CAGradientLayer でオーバーレイして背骨を見えるようにしたいと考えています。

pageViewController にサブビューを追加してみましたが、アニメーション遷移が始まると削除されるようです。

誰かがアイデアを持っていますか?

4

1 に答える 1

1

UIPageViewController の現在表示されているサブコントローラーのビューに CAGradientLayer を追加することで問題を解決しました。左ページと右ページを区別する必要がありました (両面ランドスケープ モードの場合)。これを実現するために、「rightPage」という bool プロパティを作成し、セッターをオーバーロードしました。

- (void) setRightPage:(BOOL)rightPage
{
    _rightPage = rightPage;
    if (!self.spineShadow) {
        self.spineShadow = [CAGradientLayer layer];
    }
    self.spineShadow.zPosition = 5000;
    self.spineShadow.colors = [NSArray arrayWithObjects:
                               (id)[UIColor clearColor].CGColor,
                               (id)[[[UIColor blackColor] colorWithAlphaComponent:0.3] CGColor],
                               nil];

    if (rightPage) {
        self.spineShadow.startPoint = CGPointMake(1.00f,0.5f);
        self.spineShadow.endPoint   = CGPointMake(0.00f,0.5f);
    } else {
        self.spineShadow.startPoint = CGPointMake(0.00f,0.5f);
        self.spineShadow.endPoint   = CGPointMake(1.00f,0.5f);
    }
}
于 2012-11-30T16:08:55.153 に答える