2015-11-16 6 views
5

तो मैं लोड स्क्रीन पर यूआईएममेज व्यू को एनिमेट करना चाहता हूं और मुझे बताया गया है कि "एनीमेशन इमेज" विधि में निर्मित बहुत मेमोरी लेती है और खराब प्रोग्रामिंग है इसलिए मैं इसका उपयोग नहीं करूंगा कि, मुझे इसके साथ भी समस्याएं थीं लेकिन यह बिंदु के अलावा है।इमेज व्यू एनीमेशन, छवियों के माध्यम से लूपिंग

नीचे दिया गया कोड लगभग काम करता है लेकिन यह 3 सेकंड रखे हुए भी तेज़ तरीके से एनिमेट करता है।

func animate() { 

    UIView.animateWithDuration(3, animations: {() -> Void in 

     self.logoImageView.image = UIImage(named: "00") 
     self.logoImageView.image = UIImage(named: "02") 
     self.logoImageView.image = UIImage(named: "03") 
     self.logoImageView.image = UIImage(named: "04") 
     self.logoImageView.image = UIImage(named: "05") 
     self.logoImageView.image = UIImage(named: "06") 
     self.logoImageView.image = UIImage(named: "07") 
     self.logoImageView.image = UIImage(named: "08") 
     self.logoImageView.image = UIImage(named: "09") 
     self.logoImageView.image = UIImage(named: "10") 
     self.logoImageView.image = UIImage(named: "11") 
     self.logoImageView.image = UIImage(named: "12") 
     self.logoImageView.image = UIImage(named: "13") 
     self.logoImageView.image = UIImage(named: "14") 
     self.logoImageView.image = UIImage(named: "15") 
     self.logoImageView.image = UIImage(named: "16") 
     self.logoImageView.image = UIImage(named: "17") 
     self.logoImageView.image = UIImage(named: "18") 
     self.logoImageView.image = UIImage(named: "19") 
     self.logoImageView.image = UIImage(named: "20") 
     self.logoImageView.image = UIImage(named: "21") 
     self.logoImageView.image = UIImage(named: "22") 
     self.logoImageView.image = UIImage(named: "23") 
     self.logoImageView.image = UIImage(named: "24") 
     self.logoImageView.image = UIImage(named: "25") 
     self.logoImageView.image = UIImage(named: "26") 

     }) { (success) -> Void in 

      self.fadeInLabel() 
    } 

हालांकि, नीचे दिया गया कोड स्वागत लेबल में फीका है और ठीक काम करता है इसलिए मुझे आश्चर्य है कि उपरोक्त के साथ समस्या क्या है। सहायता के लिए धन्यवाद!

func fadeInLabel() { 

    UIView.animateWithDuration(2, animations: {() -> Void in 

     self.labelImageView.alpha = 1 

     }) { (success) -> Void in 

      self.performSelector("pushToCreateVC", withObject: self, afterDelay: 1) 
    } 

} 
+0

ऊपर वर्णित टाइमर विधि बेहतर है, लेकिन अभी भी पूरी कहानी नहीं है: http://stackoverflow.com/a/34232973/763355 – MoDJ

उत्तर

3

यू छवियों चेतन चाहते हैं यू UIImageView

self.logoImageView.animationImages = imagesListArray; 
self.logoImageView.animationDuration = 3.0 
self.logoImageView.startAnimating() 

की animationImages संपत्ति का उपयोग कर सकते हैं जहां imagesListArray है छवियों यू

या

चेतन करना चाहते हैं की सरणी यदि आप आईएम को एनिमेट करना चाहते हैं कस्टम एनीमेशन के साथ उम्र आप नीचे कोड का उपयोग कर सकते हैं जहां मैंने UIViewAnimationOptionTransitionFlipFromLeft एनीमेशन विकल्प का उपयोग किया था। बेलोवोड ओबीजे-सी में है, मुझे उम्मीद है कि आप अर्थात् मानचित्रण कर सकते हैं।

// in view Load 
_slide = 0 
[self changeSlide]; 

// Loop gallery 
NSTimer *timer = [NSTimer timerWithTimeInterval:5.0f target:self selector:@selector(changeSlide) userInfo:nil repeats:YES]; 
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; 


- (void)changeSlide 
{ 

if(_slide > _galleryImages.count-1) _slide = 0; 

UIImage *toImage = [UIImage imageNamed:_galleryImages[_slide]]; 
[UIView transitionWithView:_yourimageView 
       duration:0.6f 
       options:UIViewAnimationOptionTransitionFlipFromLeft 
      animations:^{ 
       _yourimageView.image = toImage; 

      } completion:nil]; 
_slide++; 

} 
0

मुझे एनीमेशन इमेज विधि के साथ कोई समस्या थी छवि को वापस करने के तरीके को पूरा करने पर मूल छवि पर वापस देखें। मुझे यकीन नहीं है कि कोई बेहतर तरीका है, लेकिन मैं टाइमर का उपयोग कर समाप्त हुआ ताकि छवि दृश्य आखिरी छवि को पूरा हो जाए।

var counter = 0 
var timer = NSTimer() 
@IBAction func countButton(sender: UIButton) { 

    timer.invalidate() 
    timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "timerAction", userInfo: nil, repeats: true) 

} 

func timerAction() { 
    ++counter 
    switch counter{ 
    case 1 : 
     image1.image = UIImage(named:"Bird-1.gif") 
    case 2 : 
     image1.image = UIImage(named:"Bird-2.gif") 
    case 3 : 
     image1.image = UIImage(named:"Bird-3.gif") 
    case 4 : 
     image1.image = UIImage(named:"Bird-4.gif") 
    case 5 : 
     image1.image = UIImage(named:"Bird-5.gif") 
    case 6 : 
     counter = 0 
     timer.invalidate() 
    default : 
     print("Error") 
    } 
} 
संबंधित मुद्दे