import UIKit
class ViewController: UIViewController {
let numOfTouchs = 2
@IBOutlet var imgViewUp: UIImageView!
@IBOutlet var imgViewLeft: UIImageView!
@IBOutlet var imgViewRight: UIImageView!
@IBOutlet var imgViewDown: UIImageView!
var imgLeft = [UIImage]()
var imgDown = [UIImage]()
var imgUp = [UIImage]()
var imgRight = [UIImage]()
//์๋ง์ ๋ฐฐ์ด์ ์ถ๊ฐ
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imgUp.append(UIImage(named: "arrow-up-black.png")!)
imgUp.append(UIImage(named: "arrow-up-red.png")!)
imgUp.append(UIImage(named: "arrow-up-green.png")!)
imgDown.append(UIImage(named: "arrow-down-black.png")!)
imgDown.append(UIImage(named: "arrow-down-red.png")!)
imgDown.append(UIImage(named: "arrow-down-green.png")!)
imgLeft.append(UIImage(named: "arrow-left-black.png")!)
imgLeft.append(UIImage(named: "arrow-left-red.png")!)
imgLeft.append(UIImage(named: "arrow-left-green.png")!)
imgRight.append(UIImage(named: "arrow-right-black.png")!)
imgRight.append(UIImage(named: "arrow-right-red.png")!)
imgRight.append(UIImage(named: "arrow-right-green.png")!)
imgViewUp.image = imgUp[0]
imgViewDown.image = imgDown[0]
imgViewRight.image = imgRight[0]
imgViewLeft.image = imgLeft[0]
//์ฒ์ ํ๋ฉด์ ๋ณด์ฌ์ง ์ด๋ฏธ์ง๋ฅผ ๋ฝ์์ ํ๋ฉด์ ๋ณด์ฌ์ค
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeUp.direction = UISwipeGestureRecognizer.Direction.up
self.view.addGestureRecognizer(swipeUp)
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeDown.direction = UISwipeGestureRecognizer.Direction.down
self.view.addGestureRecognizer(swipeDown)
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeRight.direction = UISwipeGestureRecognizer.Direction.right
self.view.addGestureRecognizer(swipeRight)
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeLeft.direction = UISwipeGestureRecognizer.Direction.left
self.view.addGestureRecognizer(swipeLeft)
//ํ๋ฉด์์ ์ธ์ํ ์ ์๋ ์ ์ค์ณ๋ฅผ ์ถ๊ฐ ํฉ๋๋ค.(ํ์๊ฐ๋ฝ์ผ๋ก ์, ์๋, ์ค๋ฅธ์ชฝ, ์ผ์ชฝ ์ค์์ดํ)
//์ค์์ดํ ์ด๋ฒคํธ ๋ฐ์์ ์ ์ธํด ๋์ respondToSwipeGesture ํจ์๊ฐ ์คํ์ด ๋๋๋ก ์ ์ธ
let swipeUpMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGestureMulti(_:)))
swipeUpMulti.direction = UISwipeGestureRecognizer.Direction.up
swipeUpMulti.numberOfTouchesRequired = numOfTouchs
self.view.addGestureRecognizer(swipeUpMulti)
let swipeDownMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGestureMulti(_:)))
swipeDownMulti.direction = UISwipeGestureRecognizer.Direction.down
swipeDownMulti.numberOfTouchesRequired = numOfTouchs
self.view.addGestureRecognizer(swipeDownMulti)
let swipeRightMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGestureMulti(_:)))
swipeRightMulti.direction = UISwipeGestureRecognizer.Direction.right
swipeRightMulti.numberOfTouchesRequired = numOfTouchs
self.view.addGestureRecognizer(swipeRightMulti)
let swipeLeftMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGestureMulti(_:)))
swipeLeftMulti.direction = UISwipeGestureRecognizer.Direction.left
swipeLeftMulti.numberOfTouchesRequired = numOfTouchs
self.view.addGestureRecognizer(swipeLeftMulti)
//ํ๋ฉด ์์ ์ธ์ํ ์ ์๋ ์ ์ค์ณ๋ฅผ ์ถ๊ฐ ํฉ๋๋ค.(๋ ์๊ฐ๋ฝ์ผ๋ก ์, ์๋, ์ค๋ฅธ์ชฝ, ์ผ์ชฝ ์ค์์ดํ)
//์ค์์ดํ ์ด๋ฒคํธ ๋ฐ์์ ์ ์ธํด ๋์ respondToSwipeGestureMulti ํจ์๊ฐ ์คํ์ด ๋๋๋ก ์ ์ธ
}
@objc func respondToSwipeGesture(_ gesture: UIGestureRecognizer){
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
imgViewUp.image = imgUp[0]
imgViewDown.image = imgDown[0]
imgViewLeft.image = imgLeft[0]
imgViewRight.image = imgRight[0]
switch swipeGesture.direction {
case UISwipeGestureRecognizer.Direction.up :
imgViewUp.image = imgUp[1]
case UISwipeGestureRecognizer.Direction.down :
imgViewDown.image = imgDown[1]
case UISwipeGestureRecognizer.Direction.right :
imgViewRight.image = imgRight[1]
case UISwipeGestureRecognizer.Direction.left :
imgViewLeft.image = imgLeft[1]
default :
break
}}
//์ ์ค์ณ ์ด๋ฒคํธ ๋ฐ์์ ์ ์ค์ณ ๋ฐฉํฅ์ ๋ง๋ ํ์ดํ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝ
}
@objc func respondToSwipeGestureMulti(_ gesture: UIGestureRecognizer){
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
imgViewUp.image = imgUp[0]
imgViewDown.image = imgDown[0]
imgViewLeft.image = imgLeft[0]
imgViewRight.image = imgRight[0]
switch swipeGesture.direction {
case UISwipeGestureRecognizer.Direction.up :
imgViewUp.image = imgUp[2]
case UISwipeGestureRecognizer.Direction.down :
imgViewDown.image = imgDown[2]
case UISwipeGestureRecognizer.Direction.right :
imgViewRight.image = imgRight[2]
case UISwipeGestureRecognizer.Direction.left :
imgViewLeft.image = imgLeft[2]
default :
break
}}
//์ ์ค์ณ ์ด๋ฒคํธ ๋ฐ์์ ์ ์ค์ณ ๋ฐฉํฅ์ ๋ง๋ ํ์ดํ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝ
}
}
์..์ฝ๋๊ฐ ๋๋ฌด ์ด๋ป์ก๋ค. ์ด๊ฑธ ๋ชจ๋ฅด๊ณ ์์๋ค๋!
๋งํฌ๋ค์ด ๊ด๋ จ ๊ณต๋ถ๋ ๋์ค์ ์ด์ด์ ํ๊ณ
์ผ๋จ ์ค๋์ swift๋ฅผ ์ด์ฉํ์ฌ ์ฑ์ ์ค์์ดํ ์ด๋ฒคํธ ๋ฐ์์
๋ฐ์ํ ๋ฐฉํฅ์ ๋ง๋ ํ์ดํ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๋ ์์ ๋ฅผ ๊ตฌํํ์์ต๋๋ค.
UISwipeGestureRecognizer
ํด๋์ค๊ฐ ์ค์์ดํ ์ด๋ฒคํธ์ ๋ฐฉํฅ์ ์ธ์ํ๊ณ ๊ทธ์ ๋ง๋ ํจ์๋ฅผ ์คํ์์ผ์ฃผ๋ ์ผ์ ํฉ๋๋ค.
swipeLeftMulti.numberOfTouchesRequired = numOfTouchs
๋ ์ค์์ดํ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์ธ์๋ ํฐ์น?์ ๊ฐฏ์๋ฅผ ์ ์ธํ๋ ๊ตฌ๋ฌธ์
๋๋ค.
๋ํ ์ค๋์ #selector
์ ๋ํ์ฌ ๊ถ๊ธ์ฆ์ด ์๊ฒจ ๋ฐ๋ก ์ฐพ์๋ณด์์ต๋๋ค.
์์ ์ฌ์ฉํ UISwipeGestureRecognizer
ํด๋์ค์์ (target: Any?, action: Selector?)
ํ๋ผ๋ฏธํฐ๋ก ์
๋ ํฐ๋ฅผ ๋ฐ์ ๋ ์ ์ธ ํด์ฃผ์ด ๋๊ฒจ์ฃผ๋ฉด ๋ฉ๋๋ค.
์
๋ํฐ๋ฅผ ์ ์ธํ ๋์๋ ๊ผญ ์์ Objective-C์์๋ ์ฌ์ฉํ ์ ์๋๋ก ํ๋@objc
๋ฅผ ๋ถ์ฌ์ ์ ์ธ์ ํด์ผํฉ๋๋ค.
๋์:
https://velog.io/@kipsong/SwiftobjcUIKit-Seletor%EC%85%80%EB%A0%89%ED%84%B0%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
https://woozzang.tistory.com/120