2016-06-28 2 views
1

enter image description here스위프트 UICollectionView cellForItemAtIndexPath 잘못된 설정 셀 내용

enter image description here

나는 제목은 'STR'변수를 동일 단지 경우 숨겨진 버튼을 만들고 싶어.

사진을 더 추가 할 수는 없지만 "7:00", "12:00", "17:00", "22:00"값에 대해 동일한 작업을 수행하고 있습니다. 그냥 "2:00"을 원해 비교하고 비교해보십시오.

이 (collectionView) cellForItemAtIndexPath 버그입니까? 아니면 다른 것이 있습니까? 난 너무 혼란 스러워요. 제발 도와주세요 ..

+0

그냥 시도해보기 –

+0

내 코드 블록과 출력을 보여주는 두 개의 그림이 있습니다. 나는 "01:00", "02:00", ".."과 같은 24 시간을 보여주기 위해 버튼을 내부에 가지고있는 수평 컬렉션 뷰를 만들고 싶습니다. 그러나 다른 버튼과 다른 버튼을 설정하고 싶습니다. 그것은 hide button 또는 다른 titleColor가 될 것입니다. 이 예제에서는 "02:00"제목이 –

+0

인 버튼을 숨기려고합니다. 그러나 "7:00", "12:00", "17:00"제목이있는 다른 버튼도 변경됩니다. 그리고 가로 컬렉션 뷰를 왼쪽이나 오른쪽으로 움직일 때마다 다른 버튼을 설정할 수 있습니다. 이상 하네, 그렇지 않니? –

답변

1

스크롤 할 때 셀을 다시 사용하므로 조건에 따라 숨겨진 참 거짓을 설정합니다. 나는 이것이 당신의 문제라고 생각합니다.

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
let hour = array[indexPath.row] 
let str ="2:00" 
if(cell.hourBtn.titleLabel?.text ==str { 
    cell.hourBtn.hidden = true 
} 
    else { 
    cell.hourBtn.hidden = false 
    } 
} 
+0

그것의 작동. 고마워 친구. –

+0

@Erkam 제 대답을 수락하십시오 :) –

1

cellForItemAtIndexPath에 버그가 없습니다. 그 세포의 label을 숨겨 둡니다. 그래서 그것은 셀을 제거하지 않는 레이블을 숨 깁니다. 2:00과 같지 않은 값만 표시하려면 추가 배열 하나를 만들어 CollectionViewDelegate 메서드에 전달해야합니다. 이와 같이 하나의 전역 배열과 함수를 만듭니다.

var array: [Int] = [Int]() 
fun populateData() { 
    for i in oldArray { 
     if i != 2 { 
      self.array.append(i) 
     } 
    } 
    collectionView.reloadData() 
} 

지금이 당신을 도울 것이

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

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let hour = array[indexPath.row] 
    cell.hourBtn.setTitle("\(hour):00", forState: .Normal) 
    //Now there is no need to write code for hiding button 
} 

희망처럼 CollectionViewDelegate 방법이 array 객체를 사용합니다.

+0

작동하지만 버튼을 보여주고 싶지만 다른 색상과 다른 색상을 설정하고 싶다면 어떻게해야합니까? 색상을 다르게 설정하고 가로 컬렉션 뷰를 right2left 또는 left2right로 이동하려고하면 버튼 색상이 바뀌고 매번 다른 버튼이 바뀌고 원하는 것은 아닙니다. –

+0

당신이하는 말을 이해하지 마십시오. 간단히 설명하십시오. 어떤 버튼 색상을 변경 하시겠습니까? –

+0

관심을 가져 주셔서 감사합니다 @Nirav, 해결할 수 있습니다 :) –

관련 문제