Swift - 渐变图层


一、扩展CAGradientLayer

import UIKit

enum GradientDirections: Int
{
    case LeftToRight
    case RightToLeft
    case TopToBottom
    case BottomToTop
    case TopLeftToBottomRight
    case TopRightToBottomLeft
    case BottomLeftToTopRight
    case BottomRightToTopLeft
}

extension CAGradientLayer
{
    /// 渐变图层
    func gradientLayer(startColor: UIColor, endColor: UIColor, direction: GradientDirections) -> CAGradientLayer
    {
        
        let gradientColors = [startColor.cgColor, endColor.cgColor]
        
        self.colors = gradientColors
        
        switch direction
        {
        case .TopToBottom:
            self.startPoint = CGPoint(x: 0.5, y: 0)
            self.endPoint = CGPoint(x: 0.5, y: 1)
            
        case .BottomToTop:
            self.startPoint = CGPoint(x: 0.5, y: 1)
            self.endPoint = CGPoint(x: 0.5, y: 0)
            
        case .LeftToRight:
            self.startPoint = CGPoint(x: 0, y: 0.5)
            self.endPoint = CGPoint(x: 1, y: 0.5)
            
        case .RightToLeft:
            self.startPoint = CGPoint(x: 1, y: 0.5)
            self.endPoint = CGPoint(x: 0, y: 0.5)
            
        case .TopLeftToBottomRight:
            self.startPoint = CGPoint(x: 0, y: 0)
            self.endPoint = CGPoint(x: 1, y: 1)
            
        case .TopRightToBottomLeft:
            self.startPoint = CGPoint(x: 1, y: 0)
            self.endPoint = CGPoint(x: 0, y: 1)
            
        case .BottomLeftToTopRight:
            self.startPoint = CGPoint(x: 0, y: 1)
            self.endPoint = CGPoint(x: 1, y: 0)
            
        case .BottomRightToTopLeft:
            self.startPoint = CGPoint(x: 1, y: 1)
            self.endPoint = CGPoint(x: 0, y: 0)
        }
        
        return self
    }
}

二、使用

let layer = CAGradientLayer().gradientLayer(startColor: UIColor.red, endColor: UIColor.orange, direction: .LeftToRight)
layer.frame = rightView.bounds
rightView.layer.insertSublayer(layer, at: 0)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 小伙伴们在开发一款APP的时候,为了优化用户的体验往往会用到多种颜色和多个图片。纯色往往让人觉得单调,使用颜色渐变...
    大脸猫121阅读 19,500评论 14 31
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 没有实质的 只有我如潮水般的思绪 只有我延绵不断的文字 你尽可说它们是虚妄幼稚的 我自己知道什么是真的就好 于这三...
    素絢阅读 475评论 5 7
  • 之前还说打死都不去看前任三,觉的那一定是个狗血剧。 听名字就很狗血,我坚决不去看。 后来被朋友拉去看,我觉得还算值...
    姜小渔阅读 542评论 0 0