带图像的 UICollectionView 单元格,单击 Swift 更改背景
UICollectionView Cell with Image, change Background with click in Swift
我有一个 Collection 视图,如下所示:
蓝色边框是一张图片。当我按下它们时,我希望文本和图像短暂变暗。
我发现这个类似的 SO 问题:
- UICollectionView Cell with Image, change Background with click
它在 Objective-C 中包含 this answer:
If you have a CustomCell, you must have a CustomCell.m (implementation
file). In this file add this, to me is the easy way:
-(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
}
}
}
但是当我点击一个单元格时,我的 collection 视图没有明显的效果。是我加错地方了还是我把它转换成Swift的方式不对?
如果我调用方法 setHighlighed
,则会收到错误
[PATH]/DoubleSoundsCollectionViewCell.swift:15:10: Method
'setHighlighted' with Objective-C selector 'setHighlighted:' conflicts
with setter for 'highlighted' from superclass 'UICollectionViewCell'
with the same Objective-C selector
因为highlighted
是Swift中的一个属性。
参见 Swift 中的 UICollectionViewCell
声明。
public var highlighted: Bool
因此您需要像这样覆盖 属性。
class DoubleSoundsCollectionViewCell : UICollectionViewCell {
override var highlighted: Bool {
didSet {
// add your implementation here
}
}
}
你应该总是知道 Swift。如果要覆盖某些内容,则必须包含 override 关键字,如果编译器在没有覆盖的情况下接受它,那么你做错了。
我有一个 Collection 视图,如下所示:
蓝色边框是一张图片。当我按下它们时,我希望文本和图像短暂变暗。
我发现这个类似的 SO 问题:
- UICollectionView Cell with Image, change Background with click
它在 Objective-C 中包含 this answer:
If you have a CustomCell, you must have a CustomCell.m (implementation file). In this file add this, to me is the easy way:
-(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
}
}
}
但是当我点击一个单元格时,我的 collection 视图没有明显的效果。是我加错地方了还是我把它转换成Swift的方式不对?
如果我调用方法 setHighlighed
,则会收到错误
[PATH]/DoubleSoundsCollectionViewCell.swift:15:10: Method 'setHighlighted' with Objective-C selector 'setHighlighted:' conflicts with setter for 'highlighted' from superclass 'UICollectionViewCell' with the same Objective-C selector
因为highlighted
是Swift中的一个属性。
参见 Swift 中的 UICollectionViewCell
声明。
public var highlighted: Bool
因此您需要像这样覆盖 属性。
class DoubleSoundsCollectionViewCell : UICollectionViewCell {
override var highlighted: Bool {
didSet {
// add your implementation here
}
}
}
你应该总是知道 Swift。如果要覆盖某些内容,则必须包含 override 关键字,如果编译器在没有覆盖的情况下接受它,那么你做错了。