From db88326e6df5689cf72bea5bfea406d7c4255447 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:00:00 -0500 Subject: [PATCH] Added helper methods for CALayer. --- PixelImage/UIKit.swift | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/PixelImage/UIKit.swift b/PixelImage/UIKit.swift index 646c3bc..1489453 100644 --- a/PixelImage/UIKit.swift +++ b/PixelImage/UIKit.swift @@ -1,3 +1,5 @@ +// TODO: Unite UIView and CALayer extensions under a common protocol + import UIKit 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 screenWidth = screenRect.size.width let screenHeight = screenRect.size.height + +func * (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) +}