EZSwiftExtensions 2.0

EZSwiftExtensions 2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2018 年 8 月
SPM支持 SPM

goktugyilLucas FarahArunav Sanyal 维护。



  • goktugyil

EZSwiftExtensions

Carthage compatible CocoaPods Compatible
License Platform Language Language Language

Build Status codecov.io MIT

Swift 标准类型和类应该如何工作。Swift 标准库、Foundation 和 UIKit 的有用扩展集合。

加入我们的在线聊天室 Gitter

使用示例

轻松获取指定索引的 object

var myArray = ["charmander","bulbasaur","squirtle"]
print(myArray.get(1)) // "bulbasaur"

轻松访问随机元素

var myArray = ["charmander","bulbasaur","squirtle"]
print(myArray.random()) // bulbasaur or something else

轻松找到对象的索引

var myArray = ["charmander","bulbasaur","squirtle","charmander"]
print(myArray.indexesOf("charmander")) // [0,3]

轻松检查数组是否包含另一个数组

var myArray = ["charmander","bulbasaur","squirtle"]
print(myArray.containsArray(["charmander","bulbasaur"])) // true
print(myArray.containsArray(["string"])) // false

Block Objects 这些对象使用 completion blocks 而不是 selectors,来源于:CEMKit-Swift 轻松初始化 BlockButton

let button = BlockButton(x: 0, y: 0, w: 100, h: 100) { (sender) -> Void in
    print("Block button clicked!")
}
let button1 = BlockButton(x: 0, y: 0, w: 100, h: 100)
button1.addAction { (sender) -> Void in
    print("Block button clicked!")
}

// There are also BlockWebView, BlockTap, BlockPan, BlockSwipe, BlockPinch, BlockLongPress

轻松在类型之间转换

var myCGFloat = myInt.toCGFloat
var myString = myInt.toString
var myDouble = myString.toDouble
var myInt = myDouble.toInt

轻松切换

var myBool: Bool = true
print(myBool.toggle()) // false

轻松初始化对象

let myView = UIView(x: 0, y: 0, w: 100, h: 100)
print(myView.frame) // (0.0, 0.0, 100.0, 100.0)

轻松访问视图堆栈顶部的 ViewController

ez.topMostViewController?.presentViewController(myAlertController, animated: true, completion: nil)
// topMostViewController is your rootViewController
// Intended for showing small VCs like UIAlertControllerstring.length, string.capitalizefirst, string.trim, string.isemail, 

轻松初始化颜色

let myColor = UIColor(r: 100, g: 100, b: 100) // Default alpha is 1

在延迟后轻松运行代码块

Timer.runThisAfterDelay(seconds: 2) { () -> () in
    print("Prints this 2 seconds later in main queue")
}

每秒轻松运行代码

var count = 0
Timer.runThisEvery(seconds: 1) { (timer) -> Void in
    print("Will print every second")
    if count == 3 {
        timer?.invalidate()
    }
    count += 1
}

轻松访问项目的版本和构建号

print(ez.appVersion) // 0.3
print(ez.appBuild) // 7
print(ez.appVersionAndBuild) // v0.3(7)

Easily track screen shots:
ez.detectScreenShot { () -> () in
    print("User took a screen shot")
}

安装

手动(约10秒)

  1. 下载并将 '/Sources' 拖动到您的项目中。
  2. 恭喜!

通过 CocoaPods 安装(约10秒)

您可以通过将 CocoaPods 添加到您的 Podfile 中来安装 EZSwiftExtensions

platform :ios, '8.0'
use_frameworks!
pod 'EZSwiftExtensions' #Stable release for Swift 3.0

pod 'EZSwiftExtensions', :git => 'https://github.com/goktugyil/EZSwiftExtensions.git' #Latest release for Swift 3.0
pod 'EZSwiftExtensions', :git => 'https://github.com/goktugyil/EZSwiftExtensions.git', :branch => 'Swift2.3' #For Swift 2.3
pod 'EZSwiftExtensions', '~> 1.6' #For Swift 2.2

为了获取全部优势,在需要导入 UIKit 的地方导入 EZSwiftExtensions

import UIKit
import EZSwiftExtensions

通过 Carthage 安装

创建一个包含框架的 Cartfile 并运行 carthage bootstrap。按照 说明$(SRCROOT)/Carthage/Build/iOS/EZSwiftExtensions.framework 添加到 iOS 项目中。

github "goktugyil/EZSwiftExtensions"

要求

  • Swift 2 或更高版本

可能的功能

  • 更多扩展!如果您经常使用某个扩展,请现在发送 pull request!
  • 在文档中使用精美的图片和 jpg。
  • 在代码中包含文档。
  • 在 README 中列出目录内容。
  • 在源代码中完成 TODO
  • OSX 兼容性,并在此处添加 https://github.com/AndrewSB/awesome-osx

使用的源

和无数个片段和 Stack Overflow 答案。

许可证

EZSwiftExtensions 则在 MIT 许可下可用。请参阅许可证文件

关键字

swift, 扩展, UIKit, exswift, Foundation, 库, 框架, 工具