Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shindyu/ApplyStyleKit
Elegant Apply Style by Swift Method Chain.🌙
https://github.com/shindyu/ApplyStyleKit
methodchain swift useful
Last synced: 3 months ago
JSON representation
Elegant Apply Style by Swift Method Chain.🌙
- Host: GitHub
- URL: https://github.com/shindyu/ApplyStyleKit
- Owner: shindyu
- License: mit
- Created: 2018-12-14T15:09:40.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-09T12:52:31.000Z (almost 2 years ago)
- Last Synced: 2024-08-09T15:29:23.968Z (3 months ago)
- Topics: methodchain, swift, useful
- Language: Swift
- Homepage:
- Size: 134 KB
- Stars: 208
- Watchers: 8
- Forks: 17
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift - ApplyStyleKit - Elegantly, Apply style to UIKit using Method Chain. (Libs / Utility)
- awesome-swift - ApplyStyleKit - Elegantly, Apply style to UIKit using Method Chain. (Libs / Utility)
- awesome-ios-star - ApplyStyleKit - Elegant apply style, using Swift Method Chain. (UI / Font)
- fucking-awesome-swift - ApplyStyleKit - Elegantly, Apply style to UIKit using Method Chain. (Libs / Utility)
- awesome-ios - ApplyStyleKit - Elegant apply style, using Swift Method Chain. (UI / Font)
- awesome-swift - ApplyStyleKit - Elegant Apply Style by Swift Method Chain. ` 📝 2 years ago ` (Utility [🔝](#readme))
README
# ApplyStyleKit
[![Build Status](https://app.bitrise.io/app/9d318dc7bad1f48a/status.svg?token=802LajjAXiwN4qC3-HgtVA&branch=master)](https://app.bitrise.io/app/9d318dc7bad1f48a)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-brightgreen.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/ApplyStyleKit.svg?style=flat)](https://cocoapods.org/pods/ApplyStyleKit)
[![License](https://img.shields.io/cocoapods/l/ApplyStyleKit.svg?style=flat)](http://cocoapods.org/pods/ApplyStyleKit)
[![Platform](https://img.shields.io/cocoapods/p/ApplyStyleKit.svg?style=flat)](http://cocoapods.org/pods/ApplyStyleKit)ApplyStyleKit is a library that applies styles to UIKit using Swifty Method Chain.
Normally, when applying styles to UIView etc.,it is necessary to write propertyName and equal operator many times.
With ApplyStyleKit, you can comfortably apply style to your code.
Like this:
```swift
sampleLabel.applyStyle
.backgroundColor(.yellow)
.text("sample label")
.textAlignment(.center)
.textColor(.green)
.font(.boldSystemFont(ofSize: 30.0))
.numberOfLines(0)
```## Installation
### Requirements
- iOS 9.0 or later
- Swift 4.2
- Xcode 10### Carthage
```
github "shindyu/ApplyStyleKit"
```### CocoaPods
```
target '' do
pod 'ApplyStyleKit'
end
```## Usage
```swift
import ApplyStyleKitclass ViewController: UIViewController {
let sampleView = UIView()
let sampleLabel = CustomLabel()override func viewDidLoad() {
super.viewDidLoad()
// Apply style
sampleView.applyStyle
.backgroundColor(.red)
.alpha(0.5)// When applying to layer
sampleView.layer.applyStyle
.cornerRadius(10)
.borderColor(.gray)
.borderWidth(2)// Of course, you can apply it if you inherit UIView etc.
sampleLabel.applyStyle
.text("Of course, you can apply it if you inherit UIView etc.")
.textAlignment(.center)
.textColor(.green)
.font(.boldSystemFont(ofSize: 30.0))
.numberOfLines(0)
}
}
```### Advanced
You can also create your own applyStyleMethod.To be able to define the extension, the access modifier of `base` which is a property of `StyleObject` is public.
example:
```swift
extension StyleObject where Base: UIView {
@discardableResult func specialStyle() -> StyleObject {
base.backgroundColor = .red
base.layer.cornerRadius = 10
return self
}
}
```## Support
QuartzCore
- ✅ CALayerUIKit
- ✅ UIView
- ✅ UILabel
- ✅ UIButton
- ✅ UIImageView
- ✅ UISwitch
- ✅ UIControl
- ✅ UIStackView
- ✅ UISlider
- ✅ UITableView
- ✅ UICollectionView## Basic policy
ApplyStyleKit intends to target methods with no return value and properties with setter.
Due to the nature of ApplyStyleKit, I think that returning types other than StyleObject should be avoided.
## Contributing
Please make an issue or pull request if you have any request.Bug reports, Documentation, or tests, are always welcome as well!😂
## License
ApplyStyleKit is available as open source under the terms of the [MIT](https://github.com/shindyu/ApplyStyleKit/blob/master/LICENSE) License.