Ich baue eine Szene mit Core Animation, die dem Bildschirmschoner auf dem alten Apple TV ähnlich sieht. Ein kontinuierlicher Strom von Bildern (jeweils CALayer
) verläuft vertikal von unten nach oben. Um dies zu erreichen, wird die Animation einer Ebene beendet, wenn sie sich außerhalb der Sicht bewegt. Sie wird wieder nach unten verschoben, ein neues Bild zugewiesen und wiederbelebt. Dies geschieht in der animationDidStop
-Delegatenmethode. Ich habe jedoch bemerkt, dass wenn ich einen Screenshot mache, wenn ich die App auf einem iPad starte, die Layer nie nach unten verschoben werden und nicht wieder gesehen werden. Ich habe das Problem isoliert, und ich bin mir sicher, dass das Erstellen von Screenshots es verursacht. Das führt mich zu der Annahme, dass das Erstellen eines Screenshots Auswirkungen auf das Animationstiming hat. Also ...
Sie könnten immer versuchen, den Screenshot programmatisch auf Basis des Inhalts der Ansicht zu erfassen und ihn dann als Screenshot zu speichern. Ich kenne deine Objekte nicht, aber das habe ich schon mal gemacht. Alle meine Inhalte für den Screenshot sind in CaptureView .
%Vor% Ist Ihre Animation in einem stationären UIImageView
? Wenn es die Bildansicht ist, die Sie auf dem Bildschirm erkennen möchten, verwenden Sie einfach frame.origin.y
im Vergleich zu 0.
Sie können presentationLayer verwenden, um Screenshots aufzunehmen, während Sie die Animation animieren.
d.h. [CaptureView.layer presentationLayer]
Sie können auch die Berührung erkennen, während Sie in presentationLayer von CALayer
animieren.
Tags und Links ios core-animation ipad screenshot calayer