Vraag Wat wordt er precies verwijderdOnCompletion = NEE doen?


CAAnimation levert de eigenschap removedOnCompletion die standaard JA is.

Laten we deze feiten erkennen:

A) Kernanimatie heeft alleen invloed op de presentatiestructuur, maar niet op de modelstructuur. Wanneer een animatie is voltooid, ziet u uiteindelijk wat in de Modelstructuur is ingesteld. U kunt bijvoorbeeld een fillMode instellen op kCAFillModeBoth, die de waarde van de presentatiestructuur omzet in de modelstructuur zodra de animatie is voltooid. Hierdoor wordt uw animatie niet teruggezet (wat waarschijnlijk is wat u wilt).

B) Ik heb een experiment gedaan. removedOnCompletion = NO will NIET hebben hetzelfde effect als kCAFillModeBoth of kCAFillModeForwards. Om preciezer te zijn: het heeft absoluut geen effect op hoe het resultaat eruit ziet als de animatie klaar is. Of het "verwijderd" is of niet, het lijkt helemaal geen invloed te hebben op de presentatiestructuur.

Om uit te leggen wat removedOnCompletion echt doet, is de documentatie in dit opzicht te zwak. Ik snap het niet. Kan iemand uitleggen wat er precies zou worden verwijderd, en wat heeft het voor zin om het niet te laten verwijderen?

Ik vermoed dat Apple het heeft over het object van de animator zelf, dat is toegevoegd aan de laag met -addAnimation: forKey: ... maar nogmaals: wat heeft het voor zin om het bij te houden?


13
2018-01-20 12:43


oorsprong


antwoorden:


removedOnCompletion:

In principe is de animatie verwijderd uit de acties van de laag wanneer die animatie is voltooid.

YES - Als u de animatie slechts één keer wilt gebruiken, hoeft u de gedelegeerde methode niet te gebruiken om de animatie na voltooiing uit de laag te verwijderen.

fillMode:

Deze eigenschap bepaalt wat er visueel gebeurt wanneer de animatie is voltooid, afhankelijk van het type vulmodus dat is opgegeven.


12
2018-01-21 00:50



Als removedOnCompletion is JA, de animatie wordt na voltooiing verwijderd en er is helemaal niets om helemaal in te vullen. Dus als je wilt gebruiken fillMode je moet zetten removedOnCompletion naar NO.


13
2017-09-28 20:53



De presentatielaag van de weergave wordt beïnvloed door de animatie, zelfs als deze is gestopt. Wanneer u de animatie verwijdert, wordt de presentatielaag teruggezet naar de waarde van de modellaag van de weergave, zodat u een resultaat krijgt als een punt.


0
2017-11-06 18:05