ios - iOS 如何计算工具栏渐变?

标签 ios background toolbar gradient

iOS 如何计算工具栏渐变?我希望能够将窗口的背景颜色设置为与渐变中的结束颜色相匹配,以便它看起来淡入 View 中。问题是,最终色调似乎会根据基色而变化,而且我找不到产生匹配的一致公式。

最佳答案

我的最佳近似值:

(r', g', b') = (f(r), f(g), f(b)) where f(x) = 0.001468x^2 + 0.647295x + 4.04025

我是如何得出这个结论的: 让c = (r, g, b) = 基色。 让c' = (r', g', b') = 结果颜色。 我让 c = #944321 = (148, 67, 33) 并得到 c' = #84361b = (132, 54, 27)

这给了我三个要解的方程:

f(148) = 132
f(67) = 54
f(33) = 27

由于我们有三个方程,因此让 f(x) 为具有三个未知数的多项式:

f(x) = Ax^2 + Bx + C

从那里,我在计算器上创建了一个 3x4 矩阵,输入不同的 x 值,并对矩阵执行缩减行梯形运算,解决方案为 (0.001468, 0.647295, 4.04025) 。我将它们插入 A、B 和 C 并得到前面提到的 f(x)

这是一个用于执行计算的快速 Python 脚本。

用法:./script.py rrggbb

#!/usr/bin/env python

import sys

def end_color(color):
    def f(x):
        return int(round(0.001468 * x ** 2 + 0.647295 * x + 4.04025))
    rgb = (int(color[i:i+2], 16) for i in xrange(0, 6, 2))
    return ''.join(hex(f(n))[2:] for n in rgb)

for color in sys.argv[1:]:
    print end_color(color)

我用颜色#9e3393测试了它并得到了#8f2983,与iOS生成的颜色相同:

$ ./script.py 9e3393
8f2983

即使不准确,有时也可能无法分辨,因为您使用的是渐变末尾的颜色。希望有帮助!

关于ios - iOS 如何计算工具栏渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10746113/

相关文章:

ios - 具有自动布局约束的 UITableViewCell 子类大小不正确

iOS 11 - UIDocumentBrowserViewController 使用模板选择器创建新文档,如何设置?

android - 滑动 TabLayout 选项卡不可点击

button - TinyMCE 4 切换工具栏按钮状态

iOS If Else 语句 - 旋转 View

ios - 如何在 iOS 中展开过渡后显示警报?

Android windowBackground随设备转动

R语言——定时器

html - 如何更改 CSS 线性渐变背景高度(厚度)?

android - 当设置应用程序 :elevation ="0dp" then hamburgermenu not showing to toolbar