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);
}
}