Очень часто в проектах разработчики используют дополнительный градиент, чтобы создать контраст между фоном и текстом.
*Или используют заранее заготовленный ассет в каталоге ресурсов.
Однако при таком использовании линейного градиента будут видны перепады яркости и резкий переход.
📖 В iOS 18 доступно новое API для смешивания цветов. Поэтому, используя
UnitCurve, можно интерполировать цвета с помощью встроенных или кастомных кривых Безье, чтобы обеспечить плавность перехода.Пример использования под катом (разверните, чтобы посмотреть):
extension Gradient {
init(from: Color, to:Color, with curve:UnitCurve, steps:Int = 10) {
let colors = stride(from: 0.0, through: 1.0, by: 1.0 / Double(steps))
.map { f in
from.mix(with: to, by: curve.value(at: f))
}
self.init(colors: colors)
}
}📖 Почитать дополнительно про смешивание цветов можно в этой статье.
😃 iOS Dev • больше разборов тут
