如何在点击时应用色调颜色并在释放时重置色彩?

时间:2017-09-04 12:07:16

标签: ios objective-c uicollectionviewcell

我是iOS的新手。

我在集合视图中有一个水平菜单栏。

我希望在用户点按时应用色调。

当用户从按钮释放手指时,它必须返回旧颜色。

每个按钮都是一个单元格

下面的

是由swift代码生成的菜单栏的GIF

我正在尝试将快速代码迁移到Objective C

enter image description here

class MenuCell:BaseCell {
// Type of Class UICollectionViewCell
let imageView: UIImageView = {
    let iv = UIImageView()
    iv.image = UIImage(named:"home")?.imageWithRenderingMode(.AlwaysTemplate)
iv.tintColor = UIColor.rgb(91,green:14,blue:13)
}()

// Dont know how to convert below code to Obj C
override var highlighted : Bool {
     didSet {
     imageView.tintColor = highlighted ? UIColor.whiteColor() : UIColor.rgb(91,green:14,blue:13)
   }
}

// Dont know how to convert below code to Obj C

override var selected : Bool {
     didSet {
     imageView.tintColor = highlighted ? UIColor.whiteColor() : UIColor.rgb(91,green:14,blue:13)
   }
}

在Objective C中,自动提示中没有显示didset方法(类型:UICollectionViewCell)

我到目前为止所做的尝试如下。

MenuCell.m // Type is UICollectionViewCell
......
self.menuCellIcon.image = [[UIImage imageNamed:@"play.png"]
                           imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

self.menuCellIcon.tintColor = [UIColor
                               colorWithRed:91/255
                               green:14/255
                               blue:13/255
                               alpha:1];
self.menuCellIcon.translatesAutoresizingMaskIntoConstraints = false;

1 个答案:

答案 0 :(得分:1)

您可以覆盖setHighlighted / setSelected

- (void)setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];
    // your tint color code
}

- (void)setSelected:(BOOL)selected {
    [super setSelected:selected];
    // your tint color code
}