سؤال

يمكنني "تجعيد" وحدة تحكم عرض مع هذا الرمز:

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController:page animated:NO];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

لكن لا يمكنني تجعيد الصفحة الأخيرة مثل هذا:

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController popViewControllerAnimated:NO];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

أي فكرة لماذا لا؟ أرغب حقًا في "عكس" الرسوم المتحركة (كما لو أن الملصق قد تم تقشيره لإظهار وحدة التحكم في العرض "Push'ed" والوقوف عند النقر فوق زر).

شكرًا

هل كانت مفيدة؟

المحلول

حسنًا ، كانت إجابتي القديمة خاطئة تمامًا ... المشكلة هي أنك تفرقع وحدة التحكم في العرض قبل تعيين عرض الانتقال. إذا قمت بتغيير الرمز إلى هذا:

[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];

أنه يعمل بشكل جيد

نصائح أخرى

باستخدام OpenGL أو الكثير من عمليات coreanimation المعقدة ، أنا متأكد من أنك تستطيع ، ولكن ، سيكون الكثير من المتاعب لفعل شيء من هذا القبيل. شيء قد يساعدك على طول: تطبيق تدوير كتاب بسيط مكتوب بالكامل مع Coreanimation

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top