????? 最近做新項目遇到一個問題,關(guān)于扇形按鈕的問題谍夭。我們都知道button蘋果只提供矩形的黑滴,圓的也是圓角度切出來的。確實很少見到扇形的button紧索。首先申明袁辈,此方法不是我原創(chuàng),只是我找到稍微修改了一下珠漂。原文地址使用CAShapeLayer和UIBezierPath畫一個自定義半圓弧button-布布扣-bubuko.com (尊重原創(chuàng))晚缩。
????? 首先說一下思路尾膊,創(chuàng)建一個類,繼承于UIControl,在里面自定義init方法荞彼,在方法里傳入需要的參數(shù)冈敛。根據(jù)CAshapelayer封裝成layer,利用UIBezierPath類畫圓弧卿泽。在利用touchesEnded方法判斷點擊區(qū)域∽叹酰基本就是這個思路签夭。下面看一下具體實現(xiàn),我寫的的與原文不太一樣椎侠。
????? 1第租,首先創(chuàng)建繼承UIControl類。自定義初始化方法以及需要的變量我纪。
??? 2慎宾, 在init方法里面創(chuàng)建需要的扇形,封裝成layer浅悉。
3趟据,調(diào)用touchesEnded方法,獲取有效的點擊區(qū)域
4术健,調(diào)用
但是這種寫法只能支持單個扇形button或者角度是90度的四個扇形button拼成一個圓汹碱,若是角度不是90度拼成的圓形會有遮蓋(現(xiàn)在我也沒有找到解決的方法,若知道請告知荞估,不得不放棄這種做法咳促。不過這種思路還是值得學(xué)習(xí)的。最后我采用了一種其他方式勘伺,可為任意角度圓跪腹,且能點擊相應(yīng),不過不是button飞醉。下一篇文章我會介紹冲茸。