我想将图像放在按钮上,所以我
var cancelImage =
UIImage(named: "close.png")?.withRenderingMode(.alwaysTemplate)
self.viewCancel.setImage(cancelImage, for: .normal)
close.png
颜色是天蓝色,但构建项目时,似乎是UIButton
默认颜色(我无法解释,但我猜可能是.systemBlue
)
我要显示图像的颜色。
我怎么显示它?
答案 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的文档