Почему градиентный слой покрывает ячейки collectionView? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть collectionView с добавленным градиентом слоя.Когда я строю и запускаю проект, я получаю градиентный слой, покрывающий ячейки collectionView.У кого-нибудь есть идеи, как я могу это исправить?

gradientLayer = CAGradientLayer()
gradientLayer.frame = view.frame
gradientLayer.colors = [#colorLiteral(red: 0.09019608051, green: 0, blue: 0.3019607961, alpha: 1).cgColor ,#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1).cgColor]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.1, y: 0.5)
homeCollectionView.layer.insertSublayer(gradientLayer, at: 0)

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Учитывая, что ваша цель - иметь градиент в качестве фона, вы должны использовать UICollectionView s backgroundView, чтобы удержать его:

let bgView = UIView(frame: homeCollectionView.bounds)

gradientLayer = CAGradientLayer()
gradientLayer.frame = view.frame
gradientLayer.colors = [#colorLiteral(red: 0.09019608051, green: 0, blue: 0.3019607961, alpha: 1).cgColor ,#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1).cgColor]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.1, y: 0.5)

bgView.layer = gradientLayer
homeCollectionVIew.backgroundView = bgView

Я написал это без компилятора, поэтому может потребоваться некоторая настройка.

Убедитесь, что ячейки представления коллекции имеют прозрачный фон.

0 голосов
/ 13 сентября 2018

Проблема в том, что подпредставления (ячейки) вашего представления коллекции также добавляют к нему подслои. И ваш градиентный слой оказывается поверх него.

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

...