Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dqhieu/UIGradient

A simple and powerful library for using gradient layer, image, color
https://github.com/dqhieu/UIGradient

color colorful gradient gradient-colors gradient-image gradientlayer ios ios-lib ios-swift swift uigradient

Last synced: 5 days ago
JSON representation

A simple and powerful library for using gradient layer, image, color

Awesome Lists containing this project

README

        






![Platform](https://img.shields.io/cocoapods/p/UIGradient.svg?style=flat) ![Swift 5](https://img.shields.io/badge/Swift-5-orange.svg) ![Version](https://img.shields.io/cocoapods/v/UIGradient.svg?style=flat) ![License](https://img.shields.io/cocoapods/l/UIGradient.svg?style=flat)

## Installation
### SPM
Add `https://github.com/dqhieu/UIGradient.git` to Swift Package Manager tab in Xcode
### Cocoapods
Add `pod 'UIGradient'` to your Podfile

## Usage
### GradientLayer
Create a GradientLayer then add it to your view's
```swift
public extension UIView {

func addGradientWithDirection(_ direction: GradientDirection, colors: [UIColor], cornerRadius: CGFloat = 0, locations: [Double]? = nil)

func addGradient(_ gradientLayer: GradientLayer, cornerRadius: CGFloat = 0)

}
```
Example
```swift
let gradient = GradientLayer(direction: GradientDirection, colors: [UIColor])
view.addGradient(gradient)
```
UIGradient supports those directions below:
```swift
public enum GradientDirection {
case topToBottom // top to bottom
case bottomToTop // bottom to top
case leftToRight // left to right
case rightToLeft // right to left
case topLeftToBottomRight // top left to bottom right
case topRightToBottomLeft // top right to bottom left
case bottomLeftToTopRight // bottom left to top right
case bottomRightToTopLeft // bottom right to top left
}
```

You can also create a GradientLayer clone instance using this function:
```swift
open class GradientLayer: CAGradientLayer {
...
public final func clone() -> GradientLayer
...
}
```

### Gradient color
UIGradient allows you create gradient color
```swift
public extension UIColor {

static func fromGradient(_ gradient: GradientLayer, frame: CGRect, cornerRadius: CGFloat = 0) -> UIColor?

static func fromGradientWithDirection(_ direction: GradientDirection, frame: CGRect, colors: [UIColor], cornerRadius: CGFloat = 0, locations: [Double]? = nil) -> UIColor?

}
```
Example
```swift
let view1 = UIView(frame: frame)
view1.backgroundColor = UIColor.fromGradientWithDirection(.topToBottom, frame: frame, colors: [UIColor.blue, UIColor.green])
//view1.backgroundColor = UIColor.fromGradient(gradient, frame: frame)
```
```swift
let label = UILabel(frame: frame)
label.text = "some text"
label.textColor = UIColor.fromGradient(gradient, frame: frame)
```

### Gradient image
UIGradient also allows you create gradient image
```swift
public extension UIImage {

static func fromGradient(_ gradient: GradientLayer, frame: CGRect, cornerRadius: CGFloat = 0) -> UIImage?

static func fromGradientWithDirection(_ direction: GradientDirection, frame: CGRect, colors: [UIColor], cornerRadius: CGFloat = 0, locations: [Double]? = nil) -> UIImage?

}
```
Example
```swift
let imageView = UIImageView(frame: frame)
imageView.image = UIImage.fromGradientWithDirection(.bottomLeftToTopRight, frame: frame, colors: [UIColor.blue, UIColor.green])
```

## Gradient library
UIGradient was inspired by [@lukedesigner](https://twitter.com/lukedesigner). I created 24 gradients based on his [website](http://www.gradients.io) and make them static variables of GradientLayer so everyone can use those gradients for their projects.
```swift
let oceanBlueGradient = GradientLayer.oceanBlue
let sanguineGradient = GradientLayer.sanguine
let lusciousLimeGradient = GradientLayer.lusciousLime
let purpleLakeGradient = GradientLayer.purpleLake
...
```




You can explore them in my example project.

## Author
UIGradient was created by **Đinh Quang Hiếu** in 2017 using Swift. If you found any problem please create issue or pull request to help me improve this open source project. Thanks!

## License
UIGradient is released and distributed under the terms and conditions of the MIT license.