Я предлагаю использовать UIView
подкласс с логинами градиента и радиуса угла c внутри.
Итак, сначала добавьте этот код в ваш проект:
@IBDesignable
class KFGradientView: UIView {
override class var layerClass: AnyClass {
return CAGradientLayer.self
}
private var gLayer: CAGradientLayer {
return self.layer as! CAGradientLayer
}
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
func commonInit() {
gLayer.type = .axial
gLayer.colors = [
UIColor(red: 1, green: 0.46, blue: 0.467, alpha: 1).cgColor,
UIColor(red: 1, green: 0.36, blue: 0.369, alpha: 1).cgColor
]
gLayer.locations = [0, 1]
gLayer.startPoint = CGPoint(x: 0.25, y: 0.5)
gLayer.endPoint = CGPoint(x: 0.75, y: 0.5)
// exaggerated colors so it's obvious
// remove or comment-out this to use original red-ish colors
gLayer.colors = [
UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 1).cgColor,
UIColor(red: 1.0, green: 1.0, blue: 0.0, alpha: 1).cgColor
]
gLayer.cornerRadius = 28
}
}
Затем, для быстрого теста, добавьте контроллер представления в раскадровку и добавьте подпрограмму UIView
. Измените класс этого представления на KFGradientView
(игнорируйте scratchy - там вы увидите название вашего проекта):
![enter image description here](https://i.stack.imgur.com/1gtTC.png)
В верхней строке меню выберите Editor -> Refresh All Views
(или отметьте Automatically Refresh Views
). Вы должны увидеть это:
![enter image description here](https://i.stack.imgur.com/GMvnN.png)
Предполагая, что вы сделаете, go для вашего прототипа ячейки Collection View и измените класс mainView
с UIView
до KFGradientView
. Там должно произойти то же самое.
Затем удалите эту строку из вашего func scale(...)
в вашем class ScalingCarouselCell: UICollectionViewCell
:
mainView.layer.cornerRadius = 28
и измените cellForItemAt
fun c to:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ScalingCarouselCell
return cell
}
Если ваш mainView
не будет правильно определен в ячейке, ну, это совсем другая проблема. Если вы не можете понять это, опубликуйте это как новый вопрос.