Mam UITableViewCell z UIView
w nim. Zrobiłem trochę CABasicAnimation i dołączyć go do nowej CAShapeLayer, potem dodaję tej warstwy do warstwy Moja super w moim UITableViewCell:Swift: usuń warstwę, bez usuwania UIView w UITableViewCell
self.layer.addSublayer(myLayer!)
wszyscy mili poza tym myLayer (i jego animacji) pokazano powyżej mojego UIView
. Chcę, aby ta etykieta była poniżej UIView
.
to osiągnąć dodając mój UIView
warstwa w ten sam sposób:
self.layer.addSublayer(myViewLayer!)
w tym przypadku moja UIView
warstwa być na szczycie CAShapeLayer z animacją.
Ale mam problem, muszę usunąć warstwę UIView - myViewLayer
, ponieważ narusza szerokość UIView podczas przewijania.
Po zakończeniu animacji i usunięciu warstw, mogę usunąć CAShapeLayer - myLayer bez problemów.
myLayer?.removeFromSuperlayer()
Ale gdy próbuję zrobić to samo z myViewLayer
, mój UIView usunięte. Ale nie chcę tego, potrzebuję mojego UIView na ekranie iw mojej hierarchii widoków.
Nie rozumiem dlaczego, jeśli patrzeć na self.layer.sublayers
widzę to (przed dodaniem warstwy):
[<CALayer: 0x7fd1f0d4fe40>, <CALayer: 0x7fd1f0ddc950>]
A po animacji zrobione i myLayer usuwa:
[<CALayer: 0x7fd1f0d4fe40>, <CALayer: 0x7fd1f0ddc950>, <CAGradientLayer: 0x7fd1f0de3660>]
jak można zobacz CAGradientLayer jest warstwą mojego UIView. Tak więc, nie mam tego przed ręcznym dodaniem go do tablicy podwarstw. Jak mogę go usunąć, bez usuwania mojego UIView?
LUB w jaki sposób mogę dodać myLayer poniżej UIView?
EDIT
W kilku słowach mam tej hierarchii warstw przed animacji:
[<CALayer: 0x7fd1f0d4fe40> <- (I think this is UITableViewCell layer), <CALayer: 0x7fd1f0ddc950> <- (then, this is UITableViewCell content view layer)]
W tym samym czasie, mam ten widok hierarchię:
UITableViewCell -> Wyświetlanie treści - > UIView
Potrzebuję dodać nową warstwę z animacją, poniżej UIView (chcę, żeby UIView był częściowo zatoczką r tę nową warstwę z animacją). Jak mogę to zrobić?
Nie mam mojej warstwy UIView w hierarchii warstw UITableView, więc nie mogę po prostu dodać warstwy z animacją za pomocą addLayer:below:
i tak dalej.
jak widać, nie mają '' self.layer.sublayers' UIView.layer' na początku, ale jeśli dodaj, mam kłopoty z resztą. –
Na iOS każde UIView ma warstwę. Zatem self.view.layer jest warstwą twojego obiektu widoku. Początkowo nie będzie żadnych podwarstw. –
Tak, masz rację, nie ma warstw, ale to self.view ma subview (moje UIView - które mają warstwę myViewLayer). I jeszcze raz o tym wspominam, ta warstwa UIView nie znalazła się w self.view.layer.sublayers. –