Ich experimentiere mit der Verwendung von cagradientlayer, um Gradienten in unserer App zu zeichnen, anstatt eine Unterklasse von uiview zu haben, die Gradienten verwaltet. Ein Snafu, das ich gesehen habe, ist, dass wenn die Ansicht, die den Farbverlauf als Sublayer der Haupt-Ebene hat, an die Daten angepasst wird, die ich zeigen möchte, wird die Größe der Ebene nicht mit geändert. Ich habe am Ende die Farbverlaufsschicht mit der ursprünglichen Bildgröße, während der Rahmen meiner Ansicht viel größer ist.
Gibt es eine Möglichkeit, den Sublayer automatisch so zu skalieren, dass er in den Frame des Superlayers oder in den Frame der Superlayer-Ansicht passt?
Implementieren Sie layoutSubviews in der Unterklasse Ihrer Ansicht. Es wird aufgerufen, wenn die Größe des Rahmens geändert wird (oder wenn setNeedsLayout aufgerufen wird). Setzen Sie den Rahmen der Ebene auf die Grenzen der Ansicht:
%Vor%Tags und Links objective-c iphone core-animation calayer