Трябва да обмислите да направите две копия на изображението, да завъртите едното и да ги маскирате и двете, така че да могат да бъдат поставени едно до друго във формата на L.
Използвайки тази техника, вие ще правите два превода наведнъж (премествайки маската и основното изображение) към двете изображения A и T. Но забележете, че завъртането няма да бъде анимирано. Ще поставите изображение T в завъртяно състояние веднага и просто ще го разкриете, като го преместите под маската (като едновременно правите обратното на изображение A, за да го скриете). Така че всъщност не комбинирате превод и ротация в една анимация, а по-скоро използвате само превод с маска както върху оригиналното изображение (A), така и върху завъртяно копие (T).
Ще трябва да маскирате лявата страна на единия и дясната страна на другия. Формата на маската трябва да има противоположен ъгъл от 45 градуса върху двете, тогава можете да съберете тези ъглови ръбове, за да образуват L. С напредването на времето просто премествате маската във всяка, докато първото изображение изчезне напълно и вие остана с вашето крайно състояние.
Маскирането е трудната част. Вижте този отговор относно маскирането на UIImage с CoreGraphics: маскиране на UIImage
Маската PNG би била просто правоъгълник с една страна под ъгъл от 45 градуса. Можете да го създадете в редактора на изображения по ваш избор (Photoshop, GIMP, Acorn).
Забележка: този подход ще създаде остър ръб в ъгъла. Другият подход би бил да изкривите пикселите около този ъгъл, докато се движат от вертикално движение надолу към хоризонтално движение надясно. (Мисля) Това би било много по-ангажирано.
person
RickDT
schedule
04.05.2011