Как реализовать черный градиент на изображении в iOS с помощью swift - PullRequest
0 голосов
/ 20 октября 2018

Я работаю над проектом iOS, где у меня есть белые метки на ярких изображениях.Проблема в том, что для ярких изображений белые метки не отображаются.Вот пример:

  1. Метка не отображается: https://imgur.com/hKtejHn
  2. Метка показывает: https://imgur.com/Ef5qJAh

Я думаю, добавлю ли черный градиентна всем изображении тогда будут видны белые метки.Кто-нибудь может мне помочь, как реализовать решение в Swift?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

попробуйте это:

extension UILabel {
    func lblShadow(color: UIColor , radius: CGFloat, opacity: Float){
        self.textColor = color
        self.layer.masksToBounds = false
        self.layer.shadowRadius = radius
        self.layer.shadowOpacity = opacity

        self.layer.shadowOffset = CGSize(width: 1, height: 1)
        self.layer.shouldRasterize = true
        self.layer.rasterizationScale = UIScreen.main.scale
    }
}

использование:

label.lblShadow(color: UIColor.white, radius: 3, opacity: 0.75)
0 голосов
/ 20 октября 2018

Если вы хотите добавить градиент на imageView, тогда вы можете просто реализовать CAGradientLayer на imageView.layer.

Попробуйте изменить некоторые значения для вашего собственного внешнего вида.Но код ниже в значительной степени это.

let gradient = CAGradientLayer()
gradientLayer.frame = imageView.frame
let colors = [
    UIColor(red: 0, green: 0, blue: 0, alpha: 1).cgColor,
    UIColor(red: 0, green: 0, blue: 0, alpha: 0).cgColor
]

gradientLayer.startPoint = CGPoint(x: 0.1, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 0.9, y: 0.5)
gradientLayer.colors = colors

imageView.layer.addSublayer(gradientLayer)

Вы можете изменить цвета, добавить цвета, изменить начальную / конечную точки.Вы можете найти множество различных CAGradientLayer руководств на YouTube или Google.

...