iOS开发:关于扇形Button设置问题

      最近做新项目遇到一个问题,关于扇形按钮的问题。我们都知道button苹果只提供矩形的,圆的也是圆角度切出来的。确实很少见到扇形的button。首先申明,此方法不是我原创,只是我找到稍微修改了一下。原文地址使用CAShapeLayer和UIBezierPath画一个自定义半圆弧button-布布扣-bubuko.com (尊重原创)。

      首先说一下思路,创建一个类,继承于UIControl,在里面自定义init方法,在方法里传入需要的参数。根据CAshapelayer封装成layer,利用UIBezierPath类画圆弧。在利用touchesEnded方法判断点击区域。基本就是这个思路。下面看一下具体实现,我写的的与原文不太一样。

      1,首先创建继承UIControl类。自定义初始化方法以及需要的变量。


iOS开发:关于扇形Button设置问题_第1张图片


iOS开发:关于扇形Button设置问题_第2张图片

    2, 在init方法里面创建需要的扇形,封装成layer。


iOS开发:关于扇形Button设置问题_第3张图片
iOS开发:关于扇形Button设置问题_第4张图片

3,调用touchesEnded方法,获取有效的点击区域

iOS开发:关于扇形Button设置问题_第5张图片

4,调用

iOS开发:关于扇形Button设置问题_第6张图片
iOS开发:关于扇形Button设置问题_第7张图片

但是这种写法只能支持单个扇形button或者角度是90度的四个扇形button拼成一个圆,若是角度不是90度拼成的圆形会有遮盖(现在我也没有找到解决的方法,若知道请告知,不得不放弃这种做法。不过这种思路还是值得学习的。最后我采用了一种其他方式,可为任意角度圆,且能点击相应,不过不是button。下一篇文章我会介绍。

你可能感兴趣的:(iOS开发:关于扇形Button设置问题)