2014-09-18 3 views
0

UITableViewController가 있으며이를 클릭하면 DetailViewUIController가 표시됩니다. DetailViewUIController에있을 때 오른쪽으로 스 와이프하여 다음 항목의 DetailViewUIController를 표시하고 왼쪽에 있으면 이전 항목을 표시하는 기능을 추가하려고합니다.신속한 스 와이프 뷰 컨트롤러 작성 방법

저는 신속하게 그렇게하는 링크를 찾습니다. 하지만 그것은 단지 3 정적 subviewcontroller 있습니다. https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

내 TableView의 항목 수는 꽤 길 수 있습니다. 즉, subviewcontroller의 정적 번호가 생성되지 않고 'addChildViewController'로 추가되지 않고 어떻게 똑같은 작업을 동적으로 수행 할 수 있습니까?

업데이트 :

덕분에 다시 도움을 @rdelmar.

'컬렉션 뷰의 contentOffset을 (컬렉션 뷰 너비) * selectedRow'로 설정하는 데 문제가 있습니다. 내 prepareForSegue 기능에서

는, 내가 추가 한 : detailController이 UICollectionViewController

x = Float(indexPath.row) * 375.0 
    var point = CGPointMake(CGFloat(x), 0) 
    println ("***x=") 
    println (x) 
    detailController.collectionView?.setContentOffset(point , animated: false) 

입니다.

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as DetailViewCell 

     // Configure the cell 
     println("DetailViewController in cellForItemAtIndexPath()") 
     println(indexPath.row) 
    cell.myitem = allItems[indexPath.row] 

반환 세포 }

그리고 난 항상 cellForItemAtIndexPath가 allItems의 0 번째 요소 (즉, 내 모든 개체의 전체 컬렉션입니다려고 볼에

.

그래서 setContentOffset()은 자세히보기를 표시하기 위해 TableView에서 클릭 한 항목에 관계없이 Detail View에 표시되는 내용을 변경하지 않습니다.

이 문제를 해결할 생각이 있습니까?

감사합니다.

답변

0

이렇게 할 수있는 방법에는 여러 가지가 있습니다. 한 가지 방법은 세부보기 컨트롤러의보기를 셀과 화면 크기가 같은 콜렉션보기 (페이징 사용)로 만드는 것입니다. 콜렉션 뷰가 셀을 채울 수 있도록 테이블을 채우는 데 사용하는 배열을 전달해야합니다. 콜렉션 뷰는 두 개의 셀을 인스턴스화해야하기 때문에 매우 효율적입니다.

+0

감사합니다. CollectionViewController를 만들고 XCode는 StoryBoard의 CollectionViewController 안에 CollectionView를 만듭니다. 하지만 기본적으로 셀 크기는 50 X 50입니다. 셀을 화면과 동일한 크기로 만들려면 어떻게해야합니까? – hap497

+0

@ hap497, 스토리 보드의 모서리를 드래그하거나 컬렉션 뷰의 크기 속성에서 크기를 설정할 수 있습니다. itemSize 속성을 사용하여 코드에서 설정할 수도 있습니다. – rdelmar

+0

고마워, 또. 한 가지 더 묻습니다. 사용자는 내 tableview에서 다섯 번째 요소를 클릭하여 Detail View를 시작할 수 있습니다. 내 세부보기 컨트롤러의보기가 처음 시작할 때 다섯 번째 요소로 점프하는 컬렉션보기가 될 수 있습니까? 왼쪽으로 스 와이프하면 여섯 번째가 표시됩니까? – hap497

관련 문제