Я работаю над проектом tvOS. Этот проект содержит UICollectionView
с UIImageView
внутри каждого UICollectionViewCell
. Прежде всего, я использую adjustsImageWhenAncestorFocused
на изображении, потому что он хорошо выглядит, когда ячейка находится в фокусе, и я хочу иметь эффект «параллакса».Swift - Как добавить слой в UIImageView внутри UICollectionViewCell и сохранить эффект параллакса
Когда ячейка находится в фокусе, должна появиться надпись (для названия продукта), которая не является проблемой для создания. Но я хочу, чтобы заголовок был хорошо читаемым, поэтому я хочу наложить слой градиента поверх изображения.
Проблема: Когда я добавляю слой градиента в UIImageView, она идет поверх него, но это не «палка» к нему. Он должен идти с изображением, когда пользователь делает параллакса вещь, но она остается на своей позиции и исходное изображение вертится под слой с градиентом
Кодекса
let gradientLayer = CAGradientLayer()
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
gradientLayer.colors = [UIColor(red:0.00, green:1.00, blue:1.00, alpha:0.3).cgColor, UIColor(red:1.00, green:0, blue:1.00, alpha:0.3).cgColor]
gradientLayer.frame = productImageView.focusedFrameGuide.layoutFrame
gradientLayer.isHidden = true
self.productImageView.layer.addSublayer(self.gradientLayer)
if (self.isFocused){
gradientLayer.isHidden = false
}
else {
gradientLayer.isHidden = true
}
}
Дополнительный вопрос
Это ошибка? Потому что я до сих пор не понял, как решить эту проблему. Должен ли я отдать это Apple?
Кто-нибудь знает способ сделать это вручную до этого IOS 11 функции? – jakedunc