如何用CoreGraphics画一张中间透明边缘不透明的image

例如我需要一张白色但是中间有一个透明的圆的图片来覆盖在图片上处理圆角头像的问题,该怎么绘制才能得出这张图片呢,我并不想直接把头像绘制成圆形。

阅读 7.5k
3 个回答

自己来答吧,用CGContextClearRect这个函数就妥妥解决了,哈哈

楼主的答案不错,我再提供一个思路。贝塞尔曲线。

贝塞尔曲线 顺指针 是fill,逆时针是clip。
所以可以将中间你需要的地方加一个逆时针的path。这个的好处是,你中间扣个啥都可以实现了!五角星,还是圆角矩形。

UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.bounds];
UIBezierPath *clipPath = [[UIBezierPath bezierPathWithRect:clipFrame] bezierPathByReversingPath];
[path appendPath:clipPath];

CGContextAddPath(context, path.CGPath);
CGContextFillPath(context);

你可以用九宫格的方式,中间一个正方形的view做成透明的,其余的view是白色的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题