UIPageViewController上的圆角
问题描述:
我想知道是否有人将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];
这一切都有点硬编码(这显然是坏的),但我只是想看看圆角会工作。不过,我只得到一个非圆形的透明角落:
答
添加此导入:
#import <QuartzCore/QuartzCore.h>
现在你可以使用cornerRadius:
self.notebookPages.view.layer.cornerRadius = 6;
你试过设置'UIViewController'页面的'UIView'的'layer.cornerRadius'属性? – holex 2012-08-13 21:21:34
我刚刚试过,只影响转角前的转角动画。不过,我在iOS5上。在iOS6中可能会有所不同。 – Marty 2012-08-14 13:44:40
我猜这个效果是由OpenGL而不是Core Animation来管理的,我认为是不可能的。 – Andrea 2012-08-16 14:53:40