Градиентная маска для UIVisualEffectView - PullRequest
0 голосов
/ 11 июня 2019

Я знаю, что UIVisualEffectView очень ненастраиваемо, поэтому я не могу установить радиус размытия вида или даже цвет.

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

Я хочу реализовать Tabbar с размытым фоном, но в верхнем углу он становится острее до 100%. Поскольку я знаю, что не могу настроить радиус размытия, у меня была идея поработать с маской градиента, чтобы получить что-то вроде этого:

Created with a graphictool

Но, как ни печально в начале, я даже не мог замаскировать простой прямоугольник:

let gradientMask = CAGradientLayer()
    gradientMask.frame = effectView.frame

    gradientMask.colors = [UIColor.black.cgColor, UIColor.clear.cgColor]

    effectView.layer.mask = gradientMask

В результате UIVisualEffectView больше не отображается. У вас есть обходной путь или что-то еще?

РЕДАКТИРОВАТЬ: например, на снимке экрана показано, что в конечном приложении фон представляет собой динамический список с плитками, по которым я могу прокручиваться. Поэтому обходной путь со снимками не будет работать в моем случае.

...