[TIL] 2021.02.08

승아·2021년 2월 8일
0

👩🏻‍💻 오늘 공부한 내용

✅ Page Control ( 참고 사이트 )

  1. pageControl 선언
@IBOutlet weak var pageControl: UIPageControl!
  1. pageControl 초기 설정
pageControl.numberOfPages = // 이미지 수
pageControl.currentPage = // 현재 페이지 설정
pageControl.pageIndicatorTintColor = // 선택 안된 페이지 색
pageControl.currentPageIndicatorTintColor = // 선택 된 페이지 색
imageView.image = // 처음 페이지 이미지
  1. 페이지 눌렀을 때 함수 구현
@IBAction func pageChanged(_ sender: Any) {
    imageView.image = // 선택된 이미지 : pageControl.currentPage
}
  1. 전체 코드
class SelectWishViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var pageControl: UIPageControl!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        setPageControl()
    }
    
    func setPageControl(){
        pageControl.numberOfPages = wishListViewModel.wishs[paramIndex].photo.count
        pageControl.currentPage = 0
        pageControl.pageIndicatorTintColor = UIColor.lightGray
        pageControl.currentPageIndicatorTintColor = UIColor.white
        imageView.image = wishListViewModel.wishs[paramIndex].photo[0]
    }
    
   
    @IBAction func pageChanged(_ sender: Any) {
        imageView.image = wishListViewModel.wishs[paramIndex].photo[pageControl.currentPage]
    }
}

✅ ImageView에 Swipte Gesture ( 참고 사이트 )

  1. swipe gesture 초기 설정
imageView.isUserInteractionEnabled = true // true로 설정해줘야 함 
// 왼쪽 스와이프
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(SelectWishViewController.respondToSwipeGesture(_:)))
swipeLeft.direction = UISwipeGestureRecognizer.Direction.left
self.imageView.addGestureRecognizer(swipeLeft) // 이미지뷰에 추가
// 오른쪽 스와이프
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(SelectWishViewController.respondToSwipeGesture(_:)))
swipeRight.direction = UISwipeGestureRecognizer.Direction.right
self.imageView.addGestureRecognizer(swipeRight) // 이미지뷰에 추가
  1. 제스쳐 함수 구현
@objc func respondToSwipeGesture(_ gesture: UIGestureRecognizer) {
    // 만일 제스쳐가 있다면
    if let swipeGesture = gesture as? UISwipeGestureRecognizer{
        
        switch swipeGesture.direction {
            case UISwipeGestureRecognizer.Direction.left :
                pageControl.currentPage += 1
                imageView.image = wishListViewModel.wishs[paramIndex].photo[pageControl.currentPage]
            case UISwipeGestureRecognizer.Direction.right :
                pageControl.currentPage -= 1
                imageView.image = wishListViewModel.wishs[paramIndex].photo[pageControl.currentPage]
            default:
              break
        }

    }

}

✅ 사파리 호출

@IBAction func linkButtonTapped(_ sender: Any) {
    //사파리로 링크열기
    if let url = URL(string: wishListViewModel.wishs[paramIndex].link) {
        UIApplication.shared.open(url, options: [:])
    }
}

0개의 댓글