git.iko.soy/metal-metaballs
on master help sign in
Refactored pan gesture handler.
commit83725bcbcc0d5538773b4b1f2d60ed5a1fa35eba authorvinivendra <vinivendra@gmail.com> dateWed 10 Feb 2016, 21:41 (11 years ago) parent126fd08
1 file changed+14−6
PixelImage/ViewController.swift+14−6
PixelImage/ViewController.swift+14−6
@@ -14,6 +14,8 @@ class ViewController: UIViewController, MetaballDataSource {
1414 }
1515 var previousLocation: CGPoint!
1616
17+ var selectedMetaball: Metaball?
18+
1719 override func viewDidLoad() {
1820 super.viewDidLoad()
1921
@@ -40,17 +42,23 @@ class ViewController: UIViewController, MetaballDataSource {
4042 func handlePan(recognizer: UIPanGestureRecognizer) {
4143 let location = recognizer.locationInView(metaballView)
4244
43− var selectedMetaball: UIView?
44−
45− for metaball in metaballs where
46− abs(metaball.midX - location.x) < 50 && abs(metaball.midY - location.y) < 50 {
47− selectedMetaball = metaball
48− break
45+ if selectedMetaball == nil {
46+ for metaball in metaballs where
47+ abs(metaball.midX - location.x) < 50 && abs(metaball.midY - location.y) < 50 {
48+ selectedMetaball = metaball
49+ break
50+ }
4951 }
5052
53+ guard selectedMetaball != nil else { return }
54+
5155 selectedMetaball?.middle = location
5256
5357 renderer.state = .Running
58+
59+ if recognizer.state == .Ended {
60+ selectedMetaball = nil
61+ }
5462 }
5563}
5664