728x90
반응형
01
//
// ViewController.swift
// SwipeGesture
//
// Created by Leo_Jang on 27/08/2020.
// Copyright © 2020 Leo_Jang. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imgViewUp: UIImageView!
@IBOutlet weak var imgViewLeft: UIImageView!
@IBOutlet weak var imgViewRight: UIImageView!
@IBOutlet weak var imgViewDown: UIImageView!
// 각 이미지 마다 배열을 만들어준다. 사진을 넣기 위해서
// 0 번은 디폴트 값 1번은 한 손가락 사용시 배열
var imgLeft = [UIImage]()
var imgRight = [UIImage]()
var imgUp = [UIImage]()
var imgDown = [UIImage]()
//두 번째 손가락 사용시 // 실제 아이폰은 5손 가락가지 가능 하지만 시뮬레이터는 두 손가락까지만 가능
let numOfTouches = 2
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// 0번은 디폴트 값 // 손가락 하나를 사용해서 한 것
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]
imgViewLeft.image = imgLeft[0]
imgViewRight.image = imgRight[0]
// 한 손가락 Gesture // 기본으로 기능이 추가된 상태에서 사용자가 어떤걸 사용할지 대기하는 것
// UP
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGesture(_ :)))
swipeUp.direction = UISwipeGestureRecognizer.Direction.up
self.view.addGestureRecognizer(swipeUp)
// Down
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGesture(_ :)))
swipeDown.direction = UISwipeGestureRecognizer.Direction.down
self.view.addGestureRecognizer(swipeDown)
// Left
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGesture(_ :)))
swipeLeft.direction = UISwipeGestureRecognizer.Direction.left
self.view.addGestureRecognizer(swipeLeft)
// Right
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGesture(_ :)))
swipeRight.direction = UISwipeGestureRecognizer.Direction.right
self.view.addGestureRecognizer(swipeRight)
// 두 손가락 사용시
// UP
let swipeUpMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGestureMulti(_ :)))
swipeUpMulti.direction = UISwipeGestureRecognizer.Direction.up
swipeUpMulti.numberOfTouchesRequired = numOfTouches
self.view.addGestureRecognizer(swipeUpMulti)
// Down
let swipeDownMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGestureMulti(_ :)))
swipeDownMulti.direction = UISwipeGestureRecognizer.Direction.down
swipeDownMulti.numberOfTouchesRequired = numOfTouches
self.view.addGestureRecognizer(swipeDownMulti)
// Left
let swipeLeftMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGestureMulti(_ :)))
swipeLeftMulti.direction = UISwipeGestureRecognizer.Direction.left
swipeLeftMulti.numberOfTouchesRequired = numOfTouches
self.view.addGestureRecognizer(swipeLeftMulti)
// Right
let swipeRightMulti = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.responseToSwipeGestureMulti(_ :)))
swipeRightMulti.direction = UISwipeGestureRecognizer.Direction.right
swipeRightMulti.numberOfTouchesRequired = numOfTouches
self.view.addGestureRecognizer(swipeRightMulti)
}
// 초기 값을 주기 위해 손을 떼고나서 다시 기본 값으로 간다.
// 이미지 바뀌는 구간
// 한 손가락 사용시
@objc func responseToSwipeGesture(_ gesture: UISwipeGestureRecognizer){
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.left:
imgViewLeft.image = imgLeft[1]
case UISwipeGestureRecognizer.Direction.right:
imgViewRight.image = imgRight[1]
default:
break
}
}
}
// 두 손가락 사용시 // 터시 스크린 인식 코드 :UISwipeGestureRecognizer
@objc func responseToSwipeGestureMulti(_ gesture: UISwipeGestureRecognizer){
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.left:
imgViewLeft.image = imgLeft[2]
case UISwipeGestureRecognizer.Direction.right:
imgViewRight.image = imgRight[2]
default:
break
}
}
}
}///-----------
반응형
'개발자 코드(Code) > Swfit' 카테고리의 다른 글
IOS) Pin Gesture_02 (이미지 확대) (0) | 2020.08.27 |
---|---|
IOS) PinGuesture (글자 확대) (0) | 2020.08.27 |
IOS) GPS 위치 (사진필요) (0) | 2020.08.27 |
IOS) 웹사이트 연결 (0) | 2020.08.26 |
IOS ) WKWebView를 통해 JSP 연결 (아파치 톰캣 필요)(사진필요) (0) | 2020.08.26 |