2016-07-20 6 views
4

일부 셀에는 하나의 컬렉션보기가 있습니다. 내 세포 안에는 국가 이름 목록을 보여주는 레이블 하나가 있습니다. 각 셀 레이블을 클릭 할 때마다 일부 데이터가 내 컬렉션보기 아래의 테이블보기에 표시됩니다.클릭하여 컬렉션보기에서 레이블 색상을 변경하는 방법

셀 레이블을 누르면 해당 레이블 텍스트가 빨간색으로 바뀝니다. 다른 레이블 이름은 검은 색이어야합니다.

어떻게 수행하나요? 아래 코드를 시도했지만 그 셀에서 레이블 이름을 선택하면 모든 셀 레이블이 빨간색으로 변하고 있습니다.

어떻게 수정합니까?

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 


     if let cell = collectionView1.cellForItemAtIndexPath(indexPath) { 

      var label = cell.viewWithTag(100) as? UILabel 


      label!.textColor = UIColor.redColor() 

     } 
    } 

답변

2

셀을 새로 고침해야하기 때문에 레이블이 업데이트되지 않습니다. 그래서 가장 좋은 방법은 당신을 제공 할 수 - 당신의 정의 셀의 클래스에 setSelected 방법에

편집을 라벨 색상을 변경 :


override var setSelected(selected: bool) { 
    if (selected) { 
     self.youLabel!.textColor = UIColor.redColor() 
    } else { 
     self.youLabel!.textColor = UIColor.blackColor() 
} 

이 사용자 정의 클래스의 기능의 예입니다. 죄송합니다. 실수가있는 경우 - 귀하의 코드로 만든

+0

당신은 나에게 내가 내 사용자 정의 셀 클래스 – mack

+0

확인에해야한다 무엇 저놈 몇 가지 코드 예제를 제공합니다. 꽤 간단합니다. –

+0

예'fool setSelected (selected : bool)' – mack

-1

나는 저에게 일합니다. 하지만 생각, customview collectionview 셀을 만드는 것이 좋습니다. 내가 iOS.Can에 새로운 오전

demo project

+0

같은 것을 작성한 것 내 질문에 우편으로 알 잖아. 당신의 해결책 만 또한 거기에있는 것처럼 말이지.하지만 내가 필요로하는 것은 빨간 색으로 변해야하는 레이블 하나를 누를 때 뿐이다. 다른 레이블을 선택하면, 기존의 선택된 레이블은 검정색으로 바뀌어야한다. 선택한 셀 레이블만으로는 붉은 색으로 표시됩니다. – mack

+0

func 컬렉션 뷰 (collectionView : UICollectionView, didDeselectItemAtIndexPath indexPath : NSIndexPath) { cell = collectionView.cellForItemAtIndexPath (indexPath) let label = cell! .viewWithTag (100) as? UILabel label? .textColor = UIColor.blackColor() } –

+0

그래서 collectionview에서 라벨 색상을 되돌려 야한다고 생각합니다. 이걸 도와 주길 바래. :) –

관련 문제