Swift UIButton图像颜色

时间:2018-09-27 01:21:50

标签: swift image uibutton

我想将图像放在按钮上,所以我

var cancelImage = 
    UIImage(named: "close.png")?.withRenderingMode(.alwaysTemplate)

self.viewCancel.setImage(cancelImage, for: .normal)

close.png颜色是天蓝色,但构建项目时,似乎是UIButton默认颜色(我无法解释,但我猜可能是.systemBlue

我要显示图像的颜色。

我怎么显示它?

2 个答案:

答案 0 :(得分:1)

  

我要显示图像的颜色

那你为什么说withRenderingMode(.alwaysTemplate)?您正在打自己的脸,然后抱怨自己的脸被打了。

相反,说withRenderingMode(.alwaysOriginal)

答案 1 :(得分:0)

使用时

//typically in your UIScrollViewDelegate method
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        BOOL mode;
        if(scrollView.contentOffset.y > 300)
            mode = NO;
        else
            mode = YES;

        if(mode != _previewMode)
        {
            _previewMode = mode;

            //force navigation appearance update
            [self updateNavigationAppearance:YES];
        }
    }

    -(BOOL)prefersNavigationBarTransparent
    {
        if(_previewMode)
            return NO;
        else
            return YES;
    }

    -(nullable UIColor *)preferredNavigationItemColor
    {
        if(_previewMode)
            return [UIColor whiteColor];
        else
            return [UIColor blackColor];;
    }

您正在告诉系统您要将图像用作模板。这允许它使用UIButton的withRenderingMode(.alwaysTemplate) 属性为图像着色。如果要使用图像的常规颜色,则应删除

tintColor

然后使用

.withRenderingMode(.alwaysTemplate) 

这是alwaysTemplate的文档