سؤال

أنا أكتب تطبيق رسم يُظهر وحدة التحكم في عرض الأدوات عندما ينقر المستخدم على عنصر في شريط الأدوات.ومع ذلك، أفاد العديد من مختبري النسخة التجريبية أن الأدوات تفتح ببطء شديد.أنا أستخدم PresentModalViewController:animated: القياسياتصل لعرض الأدوات، وحاولت تغليفها في مقطع تعليمات برمجية مثل هذا لتسريعها:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.1];
[self presentModalViewController:settings animated:YES];
[UIView commitAnimations];

لسوء الحظ، هذا لا يعمل.إذا قلت الرسوم المتحركة: لا، فهو يعمل بشكل أفضل، ولكن تتم إزالة عرض لوحة الرسم الأساسية على الفور (نظرًا لأن وحدة التحكم تعتقد أنها لم تعد مرئية)، وبالتالي تحدث الرسوم المتحركة على خلفية بيضاء.

هل قام أي شخص بذلك من قبل وسيكون على استعداد لتقديم بعض النصائح؟سأقدر ذلك!

نصائح أخرى

تم التعديل:تمت إضافة خيار آخر مع احتواء وحدة التحكم لنظام التشغيل iOS 5 والإصدارات الأحدث.

الحل الآخر هو ضبط المساحة الزمنية للطبقة.

ويتم ذلك من خلال خاصية السرعة الخاصة بـ CALayer.لإبطاء الرسوم المتحركة، يمكن للمرء استخدام:

MytransparentVCViewController *vc = [[MytransparentVCViewController alloc] initWithNibName:@"MytransparentVCViewController" bundle:nil];
// Makes all animations 10 times slower
// To speed it up, set it to multiples of 1: 2 is 2 times faster, 3 is 3 times faster etc
vc.view.layer.speed = 0.1; 
[self presentModalViewController:vc animated:YES];

لاحظ أن الحل المقترح في المنشور المرتبط لن يعمل إذا كان هدفك هو تغيير سرعة الرسوم المتحركة لوحدة التحكم في العرض المشروط التي أنت على وشك تقديمها (على سبيل المثال، إذا كنت تستخدم UIModalTransitionStyleCoverVertical).

سرعة الطبقة ليست قيمة مطلقة ولكنها دالة للمساحة الزمنية الأصلية لتلك الطبقة (ما لم تكن الطبقة في جذر التسلسل الهرمي للطبقة بالطبع).على سبيل المثال، عندما تقوم بتعيين سرعة الطبقة على 2، سيتم تشغيل الرسوم المتحركة الخاصة بها بسرعة مضاعفة مقارنة بالرسوم المتحركة الخاصة بتلك الطبقة الأصلية.

هناك خيار آخر وهو استخدام احتواء وحدة التحكم في العرض.(iOS 5 والإصدارات الأحدث فقط)

http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81.

لديك سيطرة كاملة على الرسوم المتحركة من خلال انتقال UIViewControllerFromViewController:toViewController:duration:options:animations:completion:.

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