2012-08-13 78 views
4

我想知道是否有人将UIPageViewController(将iBooks转为动画的花式书籍)的角落更改为圆角?UIPageViewController上的圆角

我试过,但无济于事:

[self.notebookPages setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL]; 
self.notebookPages.dataSource = self.pageModelController; 
self.notebookPages.doubleSided = NO; 
[self addChildViewController:self.notebookPages]; 

    // mask 

    CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
    UIBezierPath *roundedPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 332, 480) 
                 byRoundingCorners:UIRectCornerTopRight | UIRectCornerBottomRight 
                  cornerRadii:CGSizeMake(15.f, 15.f)]; 
    maskLayer.fillColor = [[UIColor whiteColor] CGColor]; 
    maskLayer.backgroundColor = [[UIColor clearColor] CGColor]; 
    maskLayer.path = [roundedPath CGPath]; 

self.notebookPages.view.layer.mask = maskLayer; 

[self.notebookScrollNavigationController.notebook.pages addSubview:self.notebookPages.view]; 

self.notebookPages.view.frame = CGRectMake(0, 0, 332, 480); 
[self.notebookPages didMoveToParentViewController:self]; 

这一切都有点硬编码(这显然是坏的),但我只是想看看圆角会工作。不过,我只得到一个非圆形的透明角落:

enter image description here

+0

你试过设置'UIViewController'页面的'UIView'的'layer.cornerRadius'属性? – holex 2012-08-13 21:21:34

+0

我刚刚试过,只影响转角前的转角动画。不过,我在iOS5上。在iOS6中可能会有所不同。 – Marty 2012-08-14 13:44:40

+1

我猜这个效果是由OpenGL而不是Core Animation来管理的,我认为是不可能的。 – Andrea 2012-08-16 14:53:40

回答

1

添加此导入:

#import <QuartzCore/QuartzCore.h> 

现在你可以使用cornerRadius:

self.notebookPages.view.layer.cornerRadius = 6;