Frage

ich meine erste iPhone-Anwendung entwickle, und ich habe es vorbei an der „Maschine“ gemacht und jetzt ist fit & Finish am Einwickeln.

Ich habe eine Ansicht, die in von der Unterseite des Bildschirms für meine Einstellungen Scheibe gleitet. Die Ansicht selbst hat eine Opazität von 0, und hat eine UIImageView Ansicht in der es mit einem PNG den eigentlichen Hintergrund für die Ansicht zu schaffen, hinter den Kontrollen. Ich bin die in der Animation Anrufen gebaut unter Verwendung von für UIView, wie in;

[self.view addSubview:settingsViewController.view];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

frame.origin.y = 200.0;
settingsViewController.view.frame = frame;

[UIView commitAnimations];

Leider ist die Animation auf dem Gerät abgehackt. Das PNG ich als meinen Hintergrund verwende ist transparent nur in den obersten 30 Pixel über ihm Breite ist. Wenn ich eine PNG ohne Transparenz verwenden, die Animation ist glatt.

Die Anwendung selbst ist sehr grafische, so die Ansicht Animieren aus über Oberseite eines Bildschirms voll von anderen PNGs.

Ich wäre sehr überrascht, wenn das Gerät diese Art der Animation reibungslos nicht verarbeiten kann, was mich mich meinen Ansatz verfeinern müssen zu glauben, führt. Gedanken, die ich bisher hatte umfassen;

Vielleicht muss ich Core Animation direkt bedienen? Cachen würde die Ansicht hinter der Scheibe Einstellungen, bevor irgendwie von Nutzen sein Animieren?

Das ist Neuland für mich, und ich weiß, es muss Möglichkeiten geben, zu optimieren, dass bewährte Verfahren berücksichtigt werden. Vielen Dank für Ihre Zeit!

War es hilfreich?

Lösung

Es spielt keine Rolle, wenn Sie Core Animation verwenden „direkt“ oder das Zentrum Eigenschaft animieren: es abgehackt ist, weil die Grafikhardware Verbund mit dem Hintergrund auf jedem Bild der Animation das transparente Bild hat. Sie haben selbst gesagt, dass eine völlig undurchsichtige PNG unter Verwendung macht die Animation glatt.

Versuchen Sie, die App unter Instruments ausgeführt wird, hat die Core Animation-Tool einige Kontrollkästchen, welche Bereiche in Echtzeit Compositing Highlight und das könnte Ihnen einige Hinweise über die Zeichnung neu zu machen.

Wenn nur die oberen 30 Pixel müssen transparent sein, es kann sich lohnen, den Hintergrund in zwei Ansichten Aufteilen eines 30 Pixelstreifen an der Oberseite (transparent) und der Rest (opak). Wenn es bei jedem Rahmen der gesamten Ansicht Compositing, könnte diese Änderung genug sein, um sie wissen zu lassen, nur auf Composite an der Spitze nur die 30 Pixel haben.

Andere Tipps

Ich habe einige Probleme hat mit dem Rahmen in der Vergangenheit Animieren, versuchen Sie stattdessen das Zentrum Eigenschaft animieren.

Auch das, was Sie brauchen um die Transparenz im Hintergrundbild für? Wird es nicht möglich sein, für Sie genau das Bild als Hintergrund der enthaltenden Ansicht verwenden, um und die Notwendigkeit für die UIImageView beseitigen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top