久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

iOS給border設置漸變色的方法實例

瀏覽:3日期:2022-09-16 18:29:30
前言

本文將從4行代碼出發給一個view設置漸變色,分別會談到幾個重要的漸變色相關屬性,在使用過程中有幾個需要特別關注的點。

給一個view的border設置漸變色是比較高階的用法,希望本文可以在這個方面幫助到你。

給view設置漸變色

通過4行代碼就可以給一個view設置漸變色:

let view = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))let gradientLayer = CAGradientLayer()gradientLayer.frame = view.bounds// @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor yellowColor].CGColor]gradientLayer.colors = [UIColor.red.cgColor, UIColor.yellow.cgColor]view.layer.addSublayer(gradientLayer)

在創建CAGradientLayer以后需要設置frame才能展示出來,否則它的大小會使用默認的0。

漸變色會根據colors數組來展示,這個數組的類型是CGColorRef,所以需要用.cgColor強制轉換;如果使用的OC語法,必須加上(__bridge id),否則漸變色會顯示不出來。

默認情況下漸變會從上至下,可是通過設置startPoint和endPoint來改變這個順序:

gradientLayer.startPoint = CGPoint(x: 0, y: 0)gradientLayer.endPoint = CGPoint(x: 1, y: 1)

這兩個點的范圍是從0到1,也就是說最左邊和最上邊是0,最下和最右是1。這個例子中漸變會變成從左上角到右下角。

漸變色還有一個重要的屬性是locations,這個屬性是用來指定colors中設置的每個顏色的終點的。

gradientLayer.locations = [0.2, 0.8]

locations中元素的范圍是從0到1。在這里,數組中的第一個元素0.2指定了colors數組中第一個元素紅色的終點是0.2,也就是說把整個漸變色范圍分成10份,從開始到2/10處都是純紅色,從2/10到8/10處是純紅色到純黃色的漸變,而從8/10到10/10是純黃色。

給view的border設置漸變色

使用UIBezierPath來創建一個帶圓角的CAShapeLayer,并且把它的圓角設置成view的圓角,就可以把一個view的border設置為漸變色。

... // 同上給view設置gradientLayer let shapeLayer = CAShapeLayer()shapeLayer.borderWidth = 1shapeLayer.path = UIBezierPath(roundedRect: gradientLayer.bounds, cornerRadius: 10).cgPathshapeLayer.fillColor = UIColor.clear.cgColor // 必須要設置成clearColor或者nil,默認是黑色shapeLayer.strokeColor = UIColor.white.cgColor // 隨便設置一個非clearColor的顏色 gradientLayer.mask = shapeLayerview.layer.addSublayer(gradientLayer) borderWidth shapeLayer的border寬度和view的相同,可以根據設計圖來設置。 cornerRadius UIBezierPath的圓角和view的圓角相同;roundedRect和CAGradientLayer的大小相同。 fillColor 是shapeLayer的填充色,默認是黑色,建議設置成nil或者是透明色clearColor strokeColor 是border的描邊色,如果設置成clearColor的話就不會繪制出來border了,這里隨便一個顏色就是讓其能夠繪制出來,實際使用的是漸變色 mask 用shapeLayer作為gradientLayer的mask,可以讓gradientLayer內部挖空,只保留邊緣border的漸變顏色 最終把漸變色layer添加到view.layer上,shapeLayer只是用來修飾gradientlayer的,目的是把gradientlayer的內部挖空,并且把border和圓角做出來。 總結

通過這篇文章我們了解了怎么給一個view設置漸變色,并詳細闡述了漸變色的幾個重要屬性。關于給border設置漸變色是一個進階的知識點。

到此這篇關于iOS給border設置漸變色的文章就介紹到這了,更多相關iOS border漸變色內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: IOS
相關文章:
主站蜘蛛池模板: 国产精品伊人影院 | 国产精品久久久久久av公交车 | 午夜精品久久久久久久久 | 久久久久久亚洲精品视频 | 91丨九色丨国产 | 黄色大片网站在线观看 | 久久兔费看a级 | 午夜在线免费观看 | 日本亚洲国产一区二区三区 | 亚洲国产精品久久人人爱 | 日韩小视频网站 | 狠狠中文字幕 | 亚洲精品一区中文字幕乱码 | 欧美成年黄网站色视频 | 国产精品99精品久久免费 | 国产亚洲欧美一区二区三区 | 亚洲高清视频在线观看 | 亚洲精品一区二区在线 | 欧美一级片 | 夜夜视频 | 国产精品不卡一区 | 亚洲女人天堂成人av在线 | 亚洲午夜视频在线观看 | 国产一区二区三区精品久久久 | 韩日精品在线观看 | 婷婷在线视频 | 爱爱视频在线观看 | 欧美成人精品一区二区三区 | 天堂视频中文字幕 | 免费成人高清 | 99精品在线| 亚洲在线免费观看 | 亚洲成人精品视频 | 99精品久久久久 | 欧美日韩三级在线 | 亚洲一二三区在线观看 | 久久99精品久久久久久按摩秒播 | 中午字幕在线观看 | 欧美久久久久久久 | 国产中文字幕在线 | 凹凸日日摸日日碰夜夜爽孕妇 |