2017-12-20 6 views
1

다른 블로그 및 사이트에서 참조한 다음 코드는 작성했지만 오류가 없습니다. 적절한 출력이 나오지 않습니다. 또한 아래 코드에 다른 코드를 추가해 보았습니다. 무엇이 잘못되었는지 확신하지 못합니다. UICollectionViewCell 등록어떻게 같은 방향으로 두 개 이상의 뷰를 스 와이프 할 수 있습니까? 다른보기로 스 와이프하는 동안 동일한 양의 데이터를 전달할 수 있습니까?

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var view3: UIView! 
    @IBOutlet weak var view2: UIView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.handleSwipe1(sender:))) 
     let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.handleSwipe1(sender:))) 

     leftSwipe.direction = .left 
     rightSwipe.direction = .right 

     view.addGestureRecognizer(leftSwipe1) 
     view.addGestureRecognizer(rightSwipe1) 

    } 

    @objc func handleSwipe1(sender: UISwipeGestureRecognizer){ 
     if(sender.direction == .left){ 
      let position = CGPoint(x: self.view3.frame.origin.x - 400.0, y: self.view3.frame.origin.y) 
      view3.frame = CGRect(x: position.x, y: position.y, width: self.view3.frame.size.width, height: self.view3.frame.size.height) 
     } 

     if(sender.direction == .left){ 
      let position = CGPoint(x: self.view2.frame.origin.x - 400.0, y: self.view3.frame.origin.y) 
      view3.frame = CGRect(x: position.x, y: position.y, width: self.view3.frame.size.width, height: self.view3.frame.size.height) 
     } 

     if(sender.direction == .right){ 
      let position = CGPoint(x: self.view3.frame.origin.x + 400.0, y: self.view3.frame.origin.y) 
      view3.frame = CGRect(x: position.x, y: position.y, width: self.view3.frame.size.width, height: self.view3.frame.size.height) 
     } 
    } 
} 
+1

두 번째. 왼쪽 조건, 당신은 view2 또는 view3 이동 하시겠습니까? – koropok

+0

예 왼쪽과 오른쪽 방향으로 모두보기를 이동하고 싶습니다. 사실 하나의 뷰 컨트롤러에 여러 뷰가 있습니다. 따라서 왼쪽과 오른쪽을 스 와이프하여 뷰를보고 싶습니다. – Saurabh

+1

"두 개 이상의 뷰를 스 와이프"라는 제목과 기본적으로 몇 가지 코드를 사용하여 수행하려는 작업을 알고 있습니까? 뷰 계층 구조 란 무엇입니까? * 단일 * 스 와이프 제스처는 ** 하나의 **보기 및 (물론) 하위보기에 유용합니다. 또는 스 와이프로 데이터를 전달하는 것에 대해 묻고 있습니까? 두 번째이며 별도의 질문이어야합니다. – dfd

답변

2

self.collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "mycell") 

이 jsonArray 수에 복귀

self.collectionView.delegate = self 
self.collectionView.dataSource = self 

UICollectionView

에 대한 세포 기반의 수를 대리인 및 데이터 소스를 설정합니다 (당신이 사용자 정의 세포를 사용하지 않는 가정)

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return self.jsonArray.count 
} 
,

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "mycell", for: indexPath) 

    // Give what ever data to your cell 
    // cell.titleLabel.text = self.jsonArray[indexPath.row] // Use indexPath.Row for the correct index of the jsonArray 
    return cell 
} 

사용자 정의 UICollectioView 셀을 사용하는 방법에 대한 SO 질문의 톤이있다 당신의 jsonArray에서 UICollectionView를 채 웁니다. 그들 중 하나에 대한 그냥 임의의 검색 : how to use custom cell in collection view controller in swift 3

+0

고마워. 위의 코드를 잘 작동합니다. – Saurabh

+0

당신은 환영합니다 :) – koropok