如果要更改單元格的背景,那麼它的,你必須在內容查看管理,例如:
cell.contentView.backgroundColor = UIColor.whiteColor()
所以你的情況,你可以取代你的功能:
@IBAction func y(sender: AnyObject) {
self.x.cellForItemAtIndexPath(place)?.contentView.backgroundColor = UIColor.blackColor()
}
@IBAction func z(sender: AnyObject) {
self.x.cellForItemAtIndexPath(place)?.contentView.backgroundColor = UIColor.whiteColor()
}
此外,如果要更改第五單元背景顏色的indexPath應該是:
var place = NSIndexPath(forItem: 4, inSection: 0)
我注意到你正在嘗試做第1行和第1列,所以它的forItem:1和inSection:1,它不像IOS中那樣工作。 UICollectionView包含項目和部分,collectionView中的項目從左邊開始寫入item0 item1 item2 ..等等,默認情況下它在第0部分中,例如,您添加另一個部分,其中第1部分將放入其他項目,這將是item0,項目2,項目3 ..等,但其在第1節等等,這裏更多關於它:Apple Documentation
確保您設置數據源到你的ViewController:
class ViewController: UIViewController,UICollectionViewDataSource {
override func viewDidLoad() {
super.viewDidLoad()
x.dataSource = self
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 20
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath)
// Configure the cell
return cell
}
}
它應該很好地工作,祝你好運 !
謝謝,但它沒有工作,仍然沒有顏色變化... – PKLJ
@PKLJ,檢查我更新的答案! – AaoIi
@Aaoli有一個錯誤:類型ViewController不符合協議'UIViewDataSource',並且我的CollectionView有三行三列,NSIndexPath仍然是(forItem:4,inSection:0)? – PKLJ