[英]UICollectionView Cell with Image, change Background with click in Swift
我有一个如下的集合视图:
蓝色边框是图像。 当我按下它们时,我希望文字和图像短暂变暗。
我发现这个类似的问题:
它在Objective-C中包括以下答案 :
如果您具有CustomCell,则必须具有CustomCell.m(实现文件)。 在这个文件中添加这个,对我来说是简单的方法:
-(void)setHighlighted:(BOOL)highlighted { if (highlighted) { self.layer.opacity = 0.6; // Here what do you want. } else{ self.layer.opacity = 1.0; // Here all change need go back } }
我尝试将其添加到自定义UICollectionViewCell
如下所示:
import UIKit
class DoubleSoundsCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellLabel: UILabel!
func highlighted(highlighted: Bool) {
if (highlighted)
{
self.layer.opacity = 0.6;
// Here what do you want.
}
else{
self.layer.opacity = 1.0;
// Here all change need go back
}
}
}
但是,当我点击一个单元格时,对我的收藏视图没有明显影响。 我是在错误的位置添加了它还是以错误的方式将其转换为Swift?
如果我调用方法setHighlighed
,则会收到错误消息
[PATH] /DoubleSoundsCollectionViewCell.swift:15:10:使用Objective-C选择器'setHighlighted:'的方法'setHighlighted'与具有相同Objective-C选择器的超类'UICollectionViewCell'的'突出显示'的设置方法发生冲突
因为highlighted
是Swift中的属性。
请参见Swift中的UICollectionViewCell
声明。
public var highlighted: Bool
因此,您将需要像这样覆盖属性。
class DoubleSoundsCollectionViewCell : UICollectionViewCell {
override var highlighted: Bool {
didSet {
// add your implementation here
}
}
}
您应该在Swift中永远都知道。 如果要覆盖某些内容,则必须包含override关键字,如果编译器接受它而没有覆盖,则说明您做错了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.