спасибо, работал как шарм :)

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

у меня естьUICollectionView который заполняет весь экран с вертикальной прокруткой.

Я хочу, чтобы верх и низUICollectionView быть черным, а середина - прозрачной (поскольку я использую черный blackgroundColor).

Я пытался применить градиенты, но каким-то образом мне не удается выполнить то, что я хочу.

Вот мой код:

let gradient = CAGradientLayer()
gradient.frame = view.bounds
gradient.colors = [UIColor.black.cgColor, UIColor.clear.cgColor, UIColor.black.cgColor]
gradient.startPoint = CGPoint(x: 1, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 1)
view.layer.mask = gradient

Код выше помещает градиент в середине экрана, но инвертирован. Она прозрачна сверху и снизу экрана и средней части, если исчезает до полного черного цвета.

Я пытаюсь создать что-то вроде этого:

Спасибо за помощь

Ответы на вопрос(1)

Решение Вопроса

изменив свою цветовую линию следующим образом:

gradient.colors = [
    UIColor(white: 1.0, alpha: 0).cgColor,
    UIColor(white: 1.0, alpha: 1).cgColor,
    UIColor(white: 1.0, alpha: 0).cgColor
]

Или, если вы хотите иметь еще больший контроль над своим градиентом, вы также можете использовать приведенный ниже код и поиграть со значениями местоположения и / или цвета:

let gradient = CAGradientLayer()
gradient.frame = view.bounds
gradient.colors = [
    UIColor(white: 1, alpha: 0).cgColor,
    UIColor(white: 1, alpha: 1).cgColor,
    UIColor(white: 1, alpha: 1).cgColor,
    UIColor(white: 1, alpha: 0).cgColor
]
gradient.locations = [0, 0.4, 0.6, 1]
view.layer.mask = gradient

Причина этого из документации;

Необязательный слой, альфа-канал которого используется для маскировки содержимого слоя.

Альфа-канал слоя определяет, сколько контента и фона слоя просматривается. Полностью или частично непрозрачные пиксели позволяют основному контенту показывать сквозные, но полностью прозрачные пиксели, блокирующие этот контент.

 Ivan Cantarino03 нояб. 2017 г., 17:59
спасибо, работал как шарм :)

Ваш ответ на вопрос