git.iko.soy/metal-metaballs
on master help sign in
Added helper methods for CALayer.
commitdb88326e6df5689cf72bea5bfea406d7c4255447 authorvinivendra <vinivendra@gmail.com> dateMon 29 Feb 2016, 17:00 (11 years ago) parent05cd2a3
1 file changed+75
PixelImage/UIKit.swift+75
PixelImage/UIKit.swift+75
@@ -1,3 +1,5 @@
1+// TODO: Unite UIView and CALayer extensions under a common protocol
2+
13import UIKit
24
35func - (left: CGPoint, right: CGPoint) -> CGVector {
@@ -139,6 +141,79 @@ extension UIView {
139141 }
140142}
141143
144+extension CALayer {
145+ var origin: CGPoint {
146+ get {
147+ return frame.origin
148+ }
149+ set {
150+ frame.origin = newValue
151+ }
152+ }
153+
154+ var size: CGSize {
155+ get {
156+ return frame.size
157+ }
158+ set {
159+ frame.size = newValue
160+ }
161+ }
162+
163+ var width: CGFloat {
164+ get {
165+ return frame.width
166+ }
167+ set {
168+ frame.size = CGSize(width: newValue, height: height)
169+ }
170+ }
171+
172+ var height: CGFloat {
173+ get {
174+ return frame.height
175+ }
176+ set {
177+ frame.size = CGSize(width: width, height: newValue)
178+ }
179+ }
180+
181+ var middle: CGPoint {
182+ get {
183+ return CGPoint(x: origin.x + width / 2, y: origin.y + height / 2)
184+ }
185+ set {
186+ origin = CGPoint(x: newValue.x - width / 2, y: newValue.y - height / 2)
187+ }
188+ }
189+
190+ var midX: CGFloat {
191+ get {
192+ return middle.x
193+ }
194+ set {
195+ middle = CGPoint(x: newValue, y: midY)
196+ }
197+ }
198+
199+ var midY: CGFloat {
200+ get {
201+ return middle.y
202+ }
203+ set {
204+ middle = CGPoint(x: midX, y: newValue)
205+ }
206+ }
207+}
208+
142209let screenRect = UIScreen.mainScreen().bounds
143210let screenWidth = screenRect.size.width
144211let screenHeight = screenRect.size.height
212+
213+func * <T: Numeric>(vector: CGVector, scalar: T) -> CGVector {
214+ return CGVector(dx: vector.dx * CGFloat(scalar.toDouble), dy: vector.dy * CGFloat(scalar.toDouble))
215+}
216+
217+func + (point: CGPoint, vector: CGVector) -> CGPoint {
218+ return CGPoint(x: point.x + vector.dx, y: point.y + vector.dy)
219+}