你能用渐变作为按钮的色调吗?

Can you have a gradient as a button tintColor?

我在界面生成器中有一个图标资源,我将其用作我的按钮图像。我可以使用

更改它的颜色
button.tintColor = UIColor.blueColor()

我可以将渐变应用到 tintColor 属性 吗?

更新

为清楚起见,我的 png 图像图标有不同的形状、心形、相机,我已将其设置为模板图像。它们都有透明背景。

您可以将 CAGradientLayer 插入您的按钮并应用 tintColor。

另一种方法是继承UIButton,在drawRect中,使用CoreGraphics绘制渐变效果如:

-(void) drawRect:(CGRect)rect
{
    ... 
    // setup up your tint color for startColor, endColor
    drawLinearGradient(context, rect, startColor, endColor);
}

如果你有一个透明背景,你可以使用你视图层的 mask 属性 来实现渐变。