我正在嘗試使用由上述UIImageView
和UIView
組成的自定義單元格執行簡單的UICollectionView
。UICollectionView和選定的UICollectionViewCell
當未選擇的單元,在電池的頂部的UIView
具有是backgroundColor
屬性設置爲UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
。
我對選擇有問題。 collectionView:didSelectItemAtIndexPath:
方法被調用,但當我更改前面描述的UIView
時,什麼都不會發生。
這裏的代碼我collectionView
:
class TestCollectionViewController: UICollectionViewController
{
var items = [1, 2, 3]
let cellId = "Cell"
override func viewDidLoad()
{
self.collectionView.allowsMultipleSelection = true
self.collectionView.delaysContentTouches = false
}
override func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int
{
return items.count
}
override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!
{
var cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId,
forIndexPath: indexPath) as TestingCollectionViewCell
let item = items[indexPath.row]
cell.imageView.image = UIImage(named: "img")
cell.overlayView.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
return cell
}
override func collectionView(collectionView: UICollectionView!, didSelectItemAtIndexPath indexPath: NSIndexPath!)
{
var cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId,
forIndexPath: indexPath) as TestingCollectionViewCell
cell.overlayView.backgroundColor = UIColor.clearColor()
}
override func collectionView(collectionView: UICollectionView!, didDeselectItemAtIndexPath indexPath: NSIndexPath!)
{
var cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId,
forIndexPath: indexPath) as TestingCollectionViewCell
cell.overlayView.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
}
}
如果這個片段是不夠的,這裏是my project
非常感謝你爲這個的元素,已經掙扎了一段時間!但是,我的新圖像被繪製在UICollectionView的中間,而不是在單擊的單元格中。任何想法爲什麼? – kakubei
@kakubei你問什麼新形象?你問關於imageView.image或overlayView? – rdelmar
我創建了一個包含該圖像的imageView和一個reloadData圖像移動到另一個單元。我無法弄清楚爲什麼。 – kakubei