Ich habe eine CAGradiantLayer mit zwei Farben, schwarz und klar. Wenn die Ansicht angezeigt wird, wird der Verlauf jedoch entsprechend angezeigt, sobald ich meine CollectionView durchblättere, verschwindet der freie Bereich des Verlaufs.Schwarz zu Clear Gradient verschwindet, wenn die Ansicht gescrollt wird
let gradient: CAGradientLayer = {
let g = CAGradientLayer()
g.colors = [UIColor.black.cgColor, UIColor.clear.cgColor]
g.startPoint = CGPoint(x: 0.5, y: 1)
g.endPoint = CGPoint(x: 0.5, y: 0)
return g
}()
Unten ist das ursprüngliche Verhalten.
Unten ist das Verhalten nach dem Scrollen.
Irgendwelche Vorschläge?
BEARBEITEN Ich habe einige zusätzliche Code enthalten, die sowohl die Einrichtung der UIView und die Zugabe der Gradientenschicht enthält.
let toolBar: UIView = {
let n = UIView()
n.translatesAutoresizingMaskIntoConstraints = false
n.backgroundColor = UIColor.clear
return n
}()
view.addSubview(s.toolBar)
view.addConstraintsWithFormat("H:|[v0]|", views: s.toolBar)
s.toolBar.heightAnchor.constraint(equalToConstant: 50).isActive = true
s.toolBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
s.toolBar.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
s.toolBar.layer.insertSublayer(s.gradient, at: 0)
s.gradient.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 50)
Wo fügen Sie Ihre Ebene hinzu? Die gesamte Sammlungsansicht? –
@FangmingNing Der Farbverlauf wird zu einer UIView hinzugefügt, deren Rahmen der des schwarzen Balkens im zweiten Bild ist. – Stefan
Können Sie den Code zum Hinzufügen dieses UIViews veröffentlichen? Das gibt uns einen besseren Hinweis, warum Ihre Ebene fehlt –