我有一个带有一些属性的自定义UICollectionViewCell类:
$(function() {
$('.toggle').click(function(e) {
if($(window).width() < 768){
$(".nav ul").slideToggle("fast");
}
});
});
我填充数据的方法如下:
class SimpleCollectionCell: UICollectionViewCell {
@IBOutlet weak var title_more: UILabel!
@IBOutlet weak var image_more: UIImageView!
@IBOutlet weak var title: UILabel!
@IBOutlet weak var distance: UILabel!
@IBOutlet weak var activity: UIImageView!
}
单元格按原样呈现并显示如下:
我的问题是如何让图片变暗?
我尝试在cellForItemAtIndexPath方法的底部添加以下代码,但滚动时会变暗,因为它会继续添加更多子视图!
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! SimpleCollectionCell
var place = Place()
// set the current place
place = Places[indexPath.row]
// set the label
cell.title.text = place.title
// setup url
let url = NSURL(string: currentThing.imageUrl!)
// set the cell image
cell.activity.hnk_setImageFromURL(url!)
return cell
}
答案 0 :(得分:3)
快速解决方案是检查是否已将叠加层添加到单元格中,如果是,则不添加另一个叠加层。
使用标签:
if cell.activity.viewWithTag(99) == nil {
// Create a subview which will add an overlay effect on image view
let overlay = UIView(frame: CGRect(x: 0, y: 0, width: cell.frame.size.width, height: cell.frame.size.height))
overlay.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.3);
overlay.tag = 99
// Add the subview to the UIImageView
cell.activity.addSubview(overlay)
}
或者只是在单元格内创建叠加层。