UIBezierPath 和各種 layer 把我玩壞了

發表於2016-11-23

關於UIBezierPath基礎

UIBezierPath物件是CGPathRef資料型別的封裝。path如果是基於向量形狀的,都用直線和曲線段去建立。我們使用直線段去建立矩形和多邊形,使用曲線段去建立弧(arc),圓或者其他複雜的曲線形狀。每一段都包括一個或者多個點,繪圖命令定義如何去詮釋這些點。每一個直線段或者曲線段的結束的地方是下一個的開始的地方。每一個連線的直線或者曲線段的集合成為subpath。一個UIBezierPath物件定義一個完整的路徑包括一個或者多個subpaths。

*** 首先我們需要自定義一個View繼承UIView?,用來繪製曲線 ***
1.建立一個三角形

關於stroke和fill的效果圖如下

112055866-97fdc6396a9c6f30

122055866-26f31d212af5916e

2.建立矩形,圓形,和一段弧線

附上效果圖:

132055866-ef80e0dad53d7cf3

CAShapeLayer和CAGradientLayer

  • CAShapeLayer是一個通過向量圖形而不是bitmap來繪製的圖層子類。可以指定顏色和線寬等屬性,用CGPath來描述繪製的圖形.
  • CAGradientLayer,蘋果給出的官方描述是:一個可以用來進行繪製##漸變背景色的layer

實戰一:寫一個環形的進度條

1.先通過CAShapeLayer和BezierPath建立一個圓形的進度條出來

效果圖⬇️

142055866-c3d2b8bc1cb3dc60

2.建立CAGradientLayer設定漸變顏色

效果圖⬇️

152055866-ecc9d6e280e831e7

162055866-f57de35c58932e36

Tips:我自己寫了一個圖表的Demo,大神們不要嫌棄~先上個效果圖

172055866-323e6931022b54af

GIT地址:https://github.com/candy7/Graphs

相關文章