Создайте UIView с начальными / конечными выцветшими краями - PullRequest
0 голосов
/ 21 марта 2019

У меня есть UIView, к которому я бы тоже хотел применить затухание / градиент.Я бы хотел, чтобы это отображалось только по краям, эффект, который я пытаюсь создать, это

gradient example

Серая линия вверху изображения,Серый посередине и оба края блеклого.

Я пробовал что-то подобное

  func render(content: FeedItem) {
        print(content.item.externalId)

//        rowSeperatorView.backgroundColor = UIColor.usingHex("f2f2f2")
        iconContainerView.backgroundColor = UIColor.usingHex("3bac58")


        let gradientLayer: CAGradientLayer = CAGradientLayer()
        gradientLayer.frame = rowSeperatorView.bounds
        gradientLayer.colors = [
            UIColor.white.cgColor,
            UIColor.usingHex("f2f2f2").cgColor,
            UIColor.white.cgColor,
        ]
        gradientLayer.locations = [0,0.5,1]

        rowSeperatorView.layer.addSublayer(gradientLayer)




        iconContainerView.layer.cornerRadius = 5
        iconContainerView.clipsToBounds = true
        iconContainerView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner]
    }

Но, похоже, не могу достичь этого результата.

1 Ответ

1 голос
/ 21 марта 2019

Вы почти там, попробуйте добавить startPoint и endPoint, а затем поиграть со свойством location.

    let gradient = CAGradientLayer()
    gradient.frame = rowSeperatorView.bounds
    gradient.colors = [UIColor.white.cgColor, UIColor.usingHex("f2f2f2").cgColor, UIColor.white.cgColor]

    gradient.locations = [0, 0.4, 0.6]
    gradient.startPoint = CGPoint(x: 0.0, y: 0.0)
    gradient.endPoint = CGPoint(x: 1.0, y: 0.0)

    rowSeperatorView.layer.addSublayer(gradient)
...