亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS給border設(shè)置漸變色的方法實(shí)例

 更新時(shí)間:2021年03月09日 10:43:35   作者:施治昂  
這篇文章主要給大家介紹了關(guān)于iOS給border設(shè)置漸變色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

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

給view設(shè)置漸變色

通過4行代碼就可以給一個(gè)view設(shè)置漸變色:

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)

在創(chuàng)建CAGradientLayer以后需要設(shè)置frame才能展示出來,否則它的大小會使用默認(rèn)的0。

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

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

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

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

漸變色還有一個(gè)重要的屬性是locations,這個(gè)屬性是用來指定colors中設(shè)置的每個(gè)顏色的終點(diǎn)的。

gradientLayer.locations = [0.2, 0.8]

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

給view的border設(shè)置漸變色

使用UIBezierPath來創(chuàng)建一個(gè)帶圓角的CAShapeLayer,并且把它的圓角設(shè)置成view的圓角,就可以把一個(gè)view的border設(shè)置為漸變色。

... // 同上給view設(shè)置gradientLayer
  
let shapeLayer = CAShapeLayer()
shapeLayer.borderWidth = 1
shapeLayer.path = UIBezierPath(roundedRect: gradientLayer.bounds, cornerRadius: 10).cgPath
shapeLayer.fillColor = UIColor.clear.cgColor // 必須要設(shè)置成clearColor或者nil,默認(rèn)是黑色
shapeLayer.strokeColor = UIColor.white.cgColor // 隨便設(shè)置一個(gè)非clearColor的顏色
  
gradientLayer.mask = shapeLayer

view.layer.addSublayer(gradientLayer)

  1. borderWidth shapeLayer的border寬度和view的相同,可以根據(jù)設(shè)計(jì)圖來設(shè)置。
  2. cornerRadius UIBezierPath的圓角和view的圓角相同;roundedRect和CAGradientLayer的大小相同。
  3. fillColor 是shapeLayer的填充色,默認(rèn)是黑色,建議設(shè)置成nil或者是透明色clearColor
  4. strokeColor 是border的描邊色,如果設(shè)置成clearColor的話就不會繪制出來border了,這里隨便一個(gè)顏色就是讓其能夠繪制出來,實(shí)際使用的是漸變色
  5. mask 用shapeLayer作為gradientLayer的mask,可以讓gradientLayer內(nèi)部挖空,只保留邊緣border的漸變顏色
  6. 最終把漸變色layer添加到view.layer上,shapeLayer只是用來修飾gradientlayer的,目的是把gradientlayer的內(nèi)部挖空,并且把border和圓角做出來。

總結(jié)

通過這篇文章我們了解了怎么給一個(gè)view設(shè)置漸變色,并詳細(xì)闡述了漸變色的幾個(gè)重要屬性。關(guān)于給border設(shè)置漸變色是一個(gè)進(jìn)階的知識點(diǎn)。

到此這篇關(guān)于iOS給border設(shè)置漸變色的文章就介紹到這了,更多相關(guān)iOS border漸變色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • iOS開發(fā)之路--仿網(wǎng)易抽屜效果

    iOS開發(fā)之路--仿網(wǎng)易抽屜效果

    本文是IOS開發(fā)之路系列的第一篇,主要講訴了如何仿網(wǎng)易新聞客戶端實(shí)現(xiàn)抽屜效果,全部源代碼都分享給大家,希望對大家有所幫助
    2014-08-08
  • iOS?Swift?Lazy?var?View失效問題解決

    iOS?Swift?Lazy?var?View失效問題解決

    這篇文章主要為大家介紹了iOS?Swift?Lazy?var?View失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • iOS app 右滑返回操作的兩種方法

    iOS app 右滑返回操作的兩種方法

    這篇文章主要介紹了iOS app 右滑返回操作的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • IOS setOnclick點(diǎn)擊事件分析

    IOS setOnclick點(diǎn)擊事件分析

    本篇文章給大家整理了IOS setOnclick點(diǎn)擊事件完美擴(kuò)展的相關(guān)知識點(diǎn)以及代碼實(shí)例,有需要的朋友可以跟著測試學(xué)習(xí)下。
    2018-05-05
  • iOS APP中保存圖片到相冊時(shí)崩潰的解決方法

    iOS APP中保存圖片到相冊時(shí)崩潰的解決方法

    下面小編就為大家分享一篇iOS APP中保存圖片到相冊時(shí)崩潰的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • iOS多線程應(yīng)用開發(fā)中使用NSOperation類的基本方法

    iOS多線程應(yīng)用開發(fā)中使用NSOperation類的基本方法

    這篇文章主要介紹了iOS多線程應(yīng)用開發(fā)中使用NSOperation類的基本方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11
  • iOS動畫解析之支付寶支付打鉤動畫的實(shí)現(xiàn)方法

    iOS動畫解析之支付寶支付打鉤動畫的實(shí)現(xiàn)方法

    支付寶支付打鉤動畫相信對大家來說都不陌生,這篇文章主要給大家介紹了關(guān)于iOS動畫解析之支付寶支付動畫的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • IOS UIWebView獲取404、504等錯(cuò)誤問題解決方案

    IOS UIWebView獲取404、504等錯(cuò)誤問題解決方案

    這篇文章主要介紹了IOS UIWebView獲取404、504等錯(cuò)誤問題的相關(guān)資料,并對相應(yīng)的錯(cuò)誤問題提出相應(yīng)的解決方案,需要的朋友可以參考下
    2016-11-11
  • 詳解iOS 輕松獲取當(dāng)前控制器的正確方式

    詳解iOS 輕松獲取當(dāng)前控制器的正確方式

    這篇文章主要介紹了詳解iOS 輕松獲取當(dāng)前控制器的正確方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • UIPageViewController實(shí)現(xiàn)的左右滑動界面

    UIPageViewController實(shí)現(xiàn)的左右滑動界面

    這篇文章主要為大家詳細(xì)介紹了UIPageViewController實(shí)現(xiàn)的左右滑動界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論