gpt4 book ai didi

iphone - 根据动态tintColor 生成CGGradient

转载 作者:行者123 更新时间:2023-12-03 19:42:02 32 4
gpt4 key购买 nike

Apple 对大部分 UIKit 都是这样做的。您只需将tintColor 传递给元素,它就会自动从中生成一个漂亮的(无论如何在大多数情况下)渐变。

我遇到了this gloss gradient function但结果与我想要的相去甚远。我知道还有UIColor extensions添加了“lighterColor”和“darkerColor”等方法,但我怀疑它们是用来生成渐变的(因此会产生模糊的渐变)。

是否有任何 3rd 方类或函数可以以与 Apple 类似的方式执行此操作?

最佳答案

进行动态着色的方法有很多,但最简单的方法是首先绘制预渲染的灰度图像,然后使用 kCGBlendModeOverlay 在顶部绘制着色颜色。 “覆盖”混合模式的操作方式与 Photoshop 类似,对于着色特别有用。

以下是我们绘制自定义有色导航栏的方法:

- (void)drawRect:(CGRect)rect {
[[UIImage imageNamed:@"NavBar.png"] drawInRect:rect]; // grayscale untinted version
UIColor *tint = [UIColor colorWithRed:1 green:0.5 blue:0.5 alpha:1]; // arbitrary
[tint set];
UIRectFillUsingBlendMode(rect, kCGBlendModeOverlay);
}

您可以直接在 Photoshop 中预览色调颜色,只需使用叠加混合模式使用您的颜色作为实体填充创建一个图层即可。

Apple 为 UINavigationBar 和其他 friend 着色的特殊技术似乎是着色颜色填充加上预渲染渐变图像叠加的组合,其名称如系统图稿文件中的“UITintedTopBarHighlightFlat.png”。

关于iphone - 根据动态tintColor 生成CGGradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119566/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com