Ich brauche einen Fall zu behandeln, wo man etwas mit oder ohne Animation, statt zu tun:UIView Animationsblock: Wenn Dauer 0 ist, ist es das gleiche wie ohne Animation?
if (animation)
{
[UIView animateWithBlock:^(){...}];
}
else
{
...
}
ich tun möchte:
[UIView animateWithBlock:^(){...} duration:(animation ? duration : 0)]
aber nicht sicher, ob es funktioniert, auch wenn es Gibt es einen Overhead für die Verwendung, anstatt die Ansicht direkt zu ändern? der Übergang effektiv durch sofortige
Dank
Und tut Hat es irgendeinen Overhead? dh. '[UIView animateWithBlock: ^() {self.view.frame = newFrame} mitDauer: 0]' vs 'self.view.frame = newFrame'? – hzxu
Sie müssten den Rahmen zuerst einstellen, damit er sich wie jeder andere Frame verhält. - Ja, es wird einen Overhead haben. – PappaSmalls
Ich habe dies mit iOS 7.1.1 5S getestet und der Unterschied ist enorm; das Setzen eines zufälligen Rahmens für eine Ansicht 10k mal dauerte 22,85 Sekunden mit^animateWithBlock:^und 0,05 Sekunden mit einem direkten Aufruf des Blocks. Wenn Sie jedoch nur wenige Animationsaufrufe für eine Benutzerinteraktion durchführen, ist der Unterschied nicht relevant. Bitte beachten Sie, dass Apple das Verhalten in Zukunft möglicherweise ändern und diesen Randfall optimieren kann. – mkko