سؤال

ولدي الرسوم المتحركة أنني عرض باستخدام UIImageView:

imageView.animationImages = myImages;
imageView.animationDuration = 3;
[imageView startAnimating];

وأنا أعلم أنني أستطيع التوقف عن ذلك باستخدام stopAnimating، ولكن ما أريده هو أن تكون قادرة على إيقافه مؤقتا. والسبب هو أنه عند استدعاء توقف، يتم عرض أي صور الرسوم المتحركة الخاصة بك، في حين أود آخر واحد هو أن تصل في الوقت عندما ضرب زر على البقاء حتى.

ولقد حاولت وضع المدة إلى عدد أكبر من ذلك بكثير، ولكن الذي يسبب جميع الصور لتختفي كذلك. يجب أن تكون هناك وسيلة أساسية حقا أن تفعل هذا؟

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

المحلول 2

وهممم ... لأنه لا يبدو أن أحدا أعلم أنني أعتقد أنها غير ممكن.

وذهبت إلى الأمام وكتب لي UIView الخاصة، مع UIImageView subview، يستخدم NSTimer للتبديل بين الصور. وميزة هذا هو أنه يمكنني التوقف واستئناف الموقت في بلدي الترفيه، ولا يبدو الأداء لتكون هذه القضية.

نصائح أخرى

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

UIView *viewBeingAnimated = //your view that is being animated
viewBeingAnimated.frame = [[viewBeingAnimated.layer presentationLayer] frame];
[viewBeingAnimated.layer removeAllAnimations];
//when user unpauses, create new animation from current position.

وoddmeter فقط قليلا تحرير:

    animatedView.animationImages = images; //images is your array
    [animatedView startAnimating];


    //Then when you need to pause;

[animatedView stopAnimating]; //Important!!
    animatedView.image = [images objectAtIndex: 0];

وهذا ينبغي أن تفعل خدعة: https://developer.apple كوم / مكتبة / دائرة الرقابة الداخلية / # سؤال وجواب / qa2009 / qa1673.html

ويروي في الأساس لك ما عليك القيام به إلى وقفة / استئناف أي CALayer للرسوم المتحركة.

إذا كنت تشعر بعدم الارتياح باستخدام أساليب CALayer على UIImageView تسيطر عليها الحركة، هل يمكن دائما مجرد جعل الرسوم المتحركة UIImage مجموعة مقرها نفسك. رمز المطلوبة قصير جدا، يمكنك أن تأخذ من هنا: <لأ href = "http://rssv2.blogspot.com/2011/04/animating-series-of-images-with-calayer.html" يختلط = " نوفولو "> http://rssv2.blogspot.com/2011/04/animating-series-of-images-with-calayer.html

وثمة خيار آخر هو لتعيين الخاصية صورة وكذلك الممتلكات animationImages. وسوف نفعل ذلك عرض صورة ثابتة عند UIImageView توقف الرسوم المتحركة لها.

وعلى افتراض صفك هي فئة فرعية من UIImageView ولها NSMutableArray من الصور، قم بما يلي:

self.animationImages = images;
//yes, I'm skipping the step to check and make sure you have at least one
//element in your array
self.image = [images objectAtIndex: 0];

وربما يمكنك أن تأخذ لقطة من صورة متحركة مشاركة وعرض ذلك؟

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