Added helper methods for CALayer.

This commit is contained in:
vinivendra 2016-02-29 17:00:00 -05:00
parent 05cd2a360b
commit db88326e6d

View File

@ -1,3 +1,5 @@
// TODO: Unite UIView and CALayer extensions under a common protocol
import UIKit import UIKit
func - (left: CGPoint, right: CGPoint) -> CGVector { func - (left: CGPoint, right: CGPoint) -> CGVector {
@ -139,6 +141,79 @@ extension UIView {
} }
} }
extension CALayer {
var origin: CGPoint {
get {
return frame.origin
}
set {
frame.origin = newValue
}
}
var size: CGSize {
get {
return frame.size
}
set {
frame.size = newValue
}
}
var width: CGFloat {
get {
return frame.width
}
set {
frame.size = CGSize(width: newValue, height: height)
}
}
var height: CGFloat {
get {
return frame.height
}
set {
frame.size = CGSize(width: width, height: newValue)
}
}
var middle: CGPoint {
get {
return CGPoint(x: origin.x + width / 2, y: origin.y + height / 2)
}
set {
origin = CGPoint(x: newValue.x - width / 2, y: newValue.y - height / 2)
}
}
var midX: CGFloat {
get {
return middle.x
}
set {
middle = CGPoint(x: newValue, y: midY)
}
}
var midY: CGFloat {
get {
return middle.y
}
set {
middle = CGPoint(x: midX, y: newValue)
}
}
}
let screenRect = UIScreen.mainScreen().bounds let screenRect = UIScreen.mainScreen().bounds
let screenWidth = screenRect.size.width let screenWidth = screenRect.size.width
let screenHeight = screenRect.size.height let screenHeight = screenRect.size.height
func * <T: Numeric>(vector: CGVector, scalar: T) -> CGVector {
return CGVector(dx: vector.dx * CGFloat(scalar.toDouble), dy: vector.dy * CGFloat(scalar.toDouble))
}
func + (point: CGPoint, vector: CGVector) -> CGPoint {
return CGPoint(x: point.x + vector.dx, y: point.y + vector.dy)
}