- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
一个人如何用3种颜色绘制CGGradient? 我有一个像这样的数组: CFArrayRef colors = (__bridge CFArrayRef) [NSArray arrayWithObje
我真的不明白这是怎么回事。我的 ImageView 上有渐变,我想在没有互联网的情况下将其删除。等网络回来了,我想再画一遍。这可能听起来很奇怪,但是当互联网在线并且我的 block 调用时,它(渐变)
如何在 View 中的封闭路径上绘制 CGGradient?我试图绘制渐变,但是,它是在 View 本身上绘制的,而不是仅在我在 View 中填充的 CGPath 中绘制。我只想在填充的路径上绘制渐变
我正在尝试绘制更复杂的 UILabels(或 UIView,如果需要,将 UILabel 放在顶部)背景。由于我希望在用户更改 iPhone 方向时自动调整大小,因此我尝试在子类 drawRect 函
iPhone 上可以在路径中绘制渐变吗? 我正在寻找 mac os x 方法的替代方法 -(void)drawInBezierPath:(NSBezierPath *)path relativeCen
我正在为我的一个应用中的新 UI 尝试一些东西。我想知道,添加渐变背景等 UI 元素的最有效方法是什么(请记住应用程序的大小以及速度/内存消耗)。 我是否最好只在 Inkscape 或 Illustr
我正在使用 CGGradiant 绘制一个 gardiant 3/4 cirlce,使用从红色到黄色到绿色的三种颜色。但是 CGGradiant 总是从淡黄色而不是红色开始颜色。我正在使用它,因为我在
我正在使用 PaintCode StyleKit 生成一堆渐变,但 PaintCode 将它们导出为 CGGradient。我想将这些渐变添加到 layer 中。是否可以将 CGGradient 转换
这个问题在这里已经有了答案: Converting Swift array to CFArray in Xcode 8 (Swift 3) (1 个回答) 5年前关闭。 只是在将我的代码从 swift
我想添加渐变作为标签的背景。我使用以下代码来实现这一目标。但问题是,虽然标签上出现渐变颜色,但文本不可见。请帮忙 lblPatientDetail.text=PatientsDetails; lblP
我有一个有 4 个页面的 UIPageViewController,通过从这里获取示例:http://www.appcoda.com/uipageviewcontroller-storyboard-t
我正在用 CGGradientCreateWithColorComponents 创建 CGGradientRef据记录支持 alpha channel : The number of items i
下面是我创建特定渐变的代码: let newBlueOne = UIColor(red: 0.141, green: 0.776, blue: 0.863, alpha: 1.000
我有这个工作代码: NSMutableArray *shadowColors = [NSMutableArray arrayWithCapacity:2]; color = [UICo
我有两个 UIColor 实例,想用它们创建渐变。代码有效,但是当我调用 arrayWithObject: 构造函数时它给了我一个警告: warning: Semantic Issue: Incomp
我一直在尝试为我的 iOS 应用程序的 UI 创建我自己的渐变。我首先使用了 CAGradientLayer,但我对“阶梯式”外观感到失望,所以我一直在尝试 CGGradient。 - (voi
var navigationImageView:UIImageView! = UIImageView() navigationImageView.frame = (0,0,320,64) var gr
样式包代码: static let red: UIColor = UIColor(red: 0.800, green: 0.000, blue: 0.000, alpha: 1.000) static
我是一名优秀的程序员,十分优秀!