2017-01-01 1 views
0

안녕하세요 다른 사람이 이유를 설명해 주실 수 없지만 다른 사람이 이유를 설명하는 두 가지 코드가 있습니까? 첫 번째 기능은 작동하지만 두 번째 기능은 작동하지 않습니다. 나는 하나의 셀을 PayNowCell 유형으로 생성하고 그 이후의 모든 셀을 CheckOutCell 유형으로 생성하려고합니다. 그러나 첫 번째 셀을 CheckOutCell로, 두 번째 셀을 PayNowCell로, 모든 후속 셀을 CheckOutCell로만 설정할 수 있습니다. 감사!!! 색인이 범위를 벗어났습니다. 그리고이 줄을 가리키고 있습니다
cell.item = checkout [indexPath.item]. 기본적으로UICollectionView는 내가 indexpath.items = 1을 설정하지 않으면 충돌을 계속합니다.

나는 동적 배열 체크 아웃 [] 및 메신저 그냥 컬렉션을 관리하는이 배열을 시도

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

    if indexPath.item == 1 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 

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

    if indexPath.item == 0 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return (checkout.count + 1) //init number of cells 
} 
+0

자세한 내용을 설명하고 또한 여기 numberOfItem 라인 코드를 제시해주십시오 : - 유 컬렉션보기 내에서 다중 셀을 관리하기위한 섹션을 추가 할 수 있습니다. –

+0

덧붙여서 –

답변

0

를 체크 아웃은 [] 성장하면서 각 checkoutcell의 ontop을 paynow라는 설명 셀을 삽입하려고 및 축소가 보기

var array = [0,[]] 

는 추가

array[1] = [your array for index 1] 

func numberOfSections(in collectionView: UICollectionView) -> Int{ 
    return (array[section] as AnyObject).count 
} 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return array[1].count 
} 


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

    if indexPath.item == 0 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    let checkout = array[1] // pass here array 
     guard checkout.count != 0 else { 
      return cell 
     } 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 
+0

var array = [0, []] 배열 [1] = [인덱스 1의 배열] 위의 두 배열은 무엇입니까? 나는 그것들을 넣을 장소와 왜 배열 배열이 필요한지를 알지 못한다. –

+0

섹션 목적을 위해 여기서 섹션 0과 1의 행 개수를 계산하는 메인 배열이 필요합니다. 그래서 여기에서 사용한이 코드를 사용해보십시오. –

+0

알겠습니다. 그래도 작동하지 않습니다. 그리고 인덱스 1에 배열을 사용하고 싶지 않은 경우 어떻게합니까? –