2017-11-06 7 views
1

이 코딩 문제에 대해 도움을 받으실 수 있기를 바랍니다. 나는 탐색 모음 버튼으로 내 컬렉션보기 셀 배경 색상을 변경하려면이 내 바 버튼을 선택 코드 :컬렉션보기 변경 내비게이션 막대 버튼으로 셀 배경 신속한

func handleBrightnessChanged() { 
    let readingCell = ReadingsDisplayCell() 
    readingCell.backgroundColor = .red 
} 

그러나, 버튼을하지 않습니다 내가 그것을 클릭 아무것도. 저를 도와주세요? 아래는 UICollectionViewCell 클래스입니다.

class ReadingsDisplayCell: UICollectionViewCell { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     backgroundColor = UIColor.gray 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("fatal error in Daily cell") 
    } 

} 

고맙습니다.

+0

런타임에는 collectionView 셀의 배경색이 회색입니까? –

답변

0

새 셀을 만들고 배경색을 설정하면 기존 셀에는 영향을주지 않습니다. 셀 색상을 변경하려면 다음 단계를 따르십시오.

먼저 셀 색상을 추적하는 속성을 만듭니다.

var currentBackgroundColor = UIColor.gray 

handleBrightnessChanged 함수에서이 속성을 새 값으로 설정하십시오.

func handleBrightnessChanged() { 
    currentBackgroundColor = .red 
} 

다음으로 collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) 함수에서 셀의 배경색을 설정하십시오.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myID", for: indexPath) 
    cell.backgroundColor = currentBackgroundColor 
    return cell 
} 

단추를 눌렀을 때이 변경 사항을 적용하려면 단추를 누를 때 컬렉션보기의 데이터를 다시로드하십시오.

func handleBrightnessChanged() { 
    currentBackgroundColor = .red 
    collectionView.reloadData() 
} 
+0

대단히 감사합니다! 정확히 내가 뭘 찾고 있어요. –