CGRectExtensions 2.0

CGRectExtensions 2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2015年9月
SPM支持 SPM

Nikolaj Schumacher 维护。



  • 作者
  • Nikolaj Schumacher

Swift CGRect Extensions

这是一组针对 OS X 和 iOS 上 Swift 的 CGRectCGPointCGSize 便利函数。

目标是提供清晰的函数来执行最常用的矩形操作,尽管代码节省很少。原因在于函数名称比使用即兴计算设置属性更能清楚地传达程序员的意图。

欢迎提交 Pull 请求和建议。

特性

  • 计算大小、应用 CGAffineTransform 的操作符
  • 角点和中心点的快捷属性
  • 偏移、内缩和外延方法,有多种指定参数的方式
  • 在矩形中对齐和居中大小
  • 在不通过变量的情况下,更改一些值并复制矩形
  • 尊重 iOS 和 OS X 上的不同坐标系
  • 单元测试

示例

这些示例也作为 Xcode 项目的 Playground 中可用。

import Foundation
import CGRectExtensions

let rect = CGRect(1, 2, 100, 200) // shorter constructor

let minY = rect.minY // shortcut properties

let topCenter = rect.topCenter // OS-dependent coordinate system

let oppositeOrigin = rect.origin + rect.size // adding

let corneredRect = rect.with(x: 0, y: 0) // modified copy

let nextPageRect = rect.offsetBy(dx: 100) // offsetting

let paddedRect = rect.insetBy(top: 66, left: 10, right: 10) // insetting

let quarterSize = rect.size * 0.5 // scaling sizes
let corner = rect.align(quarterSize, corner: .MinXEdge, .MinYEdge) // aligning sizes

let halfWidthSize = rect.size * (0.5, 1) // scaling sizes
let centeredRect = rect.center(halfWidthSize) // centering sizes

let scaledRect = rect * CGAffineTransformMakeScale(2.0, 3.0)

可变函数也可用。由于 Swift 允许直接修改 struct 属性,因此这些特别方便。

import Cocoa
import CGRectExtensions

let view = NSView()
view.frame.size = CGSize(width: 100, height: 200)

view.frame.bottomLeft = CGPoint(x: 1, y: 2)

view.frame.offsetInPlace(25, 25)

view.frame.insetInPlace(top: 66, left: 10, right: 10)

view.frame.centerInPlace(CGSize(50, 50))

view.frame.centerInPlace(CGSize(50, 50), alignTo: .MinXEdge)

view.frame.alignInPlace(CGSize(50, 50), corner: .MinXEdge, .MinYEdge)

view.frame *= CGAffineTransformMakeScale(2.0, 3.0)

集成

变更

2.0

  • 更新以兼容 Swift 2
  • 函数重命名以符合 Swift 2 的命名方案中的可变方法。