UIPageViewController与渐变叠加?

时间:2012-09-23 22:42:20

标签: objective-c ios uipageviewcontroller cagradientlayer

我需要创建一个类似书的应用程序,并希望使用UIPageViewController。 (iPad,水平布局有两页(UIPageViewControllerSpineLocationMid)。

为了让屏幕更具吸引力,我想让控制器的视图覆盖有图像或CAGradientLayer,使脊柱可见。

我尝试将一个子视图添加到pageViewController,但是当动画过渡开始时它似乎被删除了。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

我通过将CAGradientLayer添加到UIPageViewController的当前显示的子控制器的视图来解决了这个问题。 我必须区分左右页面(对于双面横向模式)。 为了实现这一点,我创建了一个名为“rightPage”的bool属性并重载了setter:

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