2016-10-22 1 views
0

나는 하나의 UICollectionView을 가지고 있는데, 어떤 카테고리 이름을 가져오고 그 이름을 표시하고 사용자가 UICollectionView의 셀을 누르면 해당 데이터가 아래에 표시됩니다. 다른 UICollectionView (두 번째 UICollectionView).모든 항목을 컬렉션보기의 첫 번째 인덱스로 표시하는 방법

그래서 내가 같이 내 UICollectionView에, 예를 들면, 필요한 의미 :

"All items Gems gaster royel mems" 

어떻게 내 첫 번째 인덱스에 동적으로 All items을 추가 :

"Gems gaster royel mems" 

내가 보여줄 필요 내 컬렉션보기, 그래서 사용자가 그 컬렉션 뷰 셀을 누르면 - 모든 항목 - 나는 내 DB에서 사용할 수있는 모든 제품을 표시해야합니다.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
    { 
let cell = collectionview1.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! smallDetail_cell 

      cell.productName.text = BTdata2[(indexPath as NSIndexPath).row].BTNames2 

      return cell 

     } 
+0

귀하의 질문에 –

+0

당신이 아코디언을 의미합니까에 collectionview의 cellForItemAtIndexPath을 추가? – viral

+0

@iOSAppDev 죄송합니다. 새로운 소식입니다. 아코디언이 무엇인지 이해할 수 없습니까 ?? – mack

답변

1
var selectedindex : NSInteger = 0 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int 
{ 

     if(collectionView == collectionview1) 
     { 
      return BTdata2.count + 1 

     } 
     else 
     { 
      return Productdata.count 

     } 

    } 

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
{ 
    let cell = collectionview1.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! smallDetail_cell 

      //cell.productName.text = BTdata2[(indexPath as NSIndexPath).row].BTNames2 

     if selectedindex == indexPath.row{ 
      cell.productName.textColor = UIColor.red 
     }else{ 
      cell.productName.textColor = UIColor.black 
     } 
     if indexPath.row == 0 { 
      cell.productName.text = "All Items" 
     }else{ 

      cell.productName.text = BTdata2[(indexPath as NSIndexPath).row - 1].BTNames2! 
     } 
     return cell 
} 



func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) 
{ 
     if collectionView == collectionview1 { 
      if indexPath.row == 0 { 
       print("all item show here click") 

      }else{ 
       print("your button click here like ",BTdata2[(indexPath as NSIndexPath).row - 1].BTNames2!) 
       // write code for display all selected category item.. 
      } 
      selectedindex = indexPath.row 
      collectionview1.reloadData() 
     } 

    } 

출력 업데이트 : 여기

모든 항목 쇼 여기에 스마트 폰과 같은

당신의 버튼 클릭 여기에 노트북과 같은

당신의 버튼 클릭을 클릭

0

이 시도

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{ 
     let cell = collectionview1.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! smallDetail_cell 

     if indexPath.row == 0{ 
      cell.productName.text = "All items" 
     }else{ 
      cell.productName.text = BTdata2[((indexPath as NSIndexPath).row) - 1].BTNames2 
     } 

     return cell 
    } 

당신의 collectionView(_ numberOfItemsInSection:) 다음으로,

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return BTdata2.count + 1 
} 
+0

어떻게 내 모든 컬렉션보기에서 내 데이터를 표시하는'모든 항목'에 대한 선택 방법을 수행 할 수 있습니다 – mack

+0

'didSelect'에서 BTData2 개체를 전달해야합니다, 당신이 누군지 보여줘 –

+0

예,하지만'All item', 그리고 다른 콜렉션 뷰 셀이 있습니다. 어떻게해야 할 것인가? 'All item'뿐만 아니라 다른 데이터 라벨 – mack