2014-06-30 7 views
5

मैं UIImageView में एक gif का उपयोग करना चाहता हूं, लेकिन मैं नहीं कर सकता। मेरे कोड है:स्विफ्ट में UIImageView में gif कैसे दिखाएं?

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"gif"]; 
    UIImage *testImage = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url]]; 
    self.dataImageView.animationImages = testImage.images; 
    self.dataImageView.animationDuration = testImage.duration; 
    self.dataImageView.animationRepeatCount = 1; 
    self.dataImageView.image = testImage.images.lastObject; 
    [self.dataImageView startAnimating]; 
} 

स्विफ्ट:

var url : NSURL = NSBundle.mainBundle().URLForResource("MAES", withExtension: "gif") 

उद्देश्य सी मैं animatedImageWithAnimatedGIFData था में लेकिन तेज में मैं नहीं जानता कि कैसे इस पर कॉल करें या नहीं मौजूद है, तो ..

धन्यवाद!

+0

http://stackoverflow.com/questions/27919620/swift-uiimageview-animate- gif-from-url/27922518 # 27922518 –

उत्तर

11

मुझे लगता है कि आप https://github.com/mayoff/uiimage-from-animated-gif+UIImage animatedImageWithAnimatedGIFData: के लिए उपयोग कर रहे हैं और स्रोत कोड उद्देश्य-सी में है।

आपको पहले अपने उद्देश्य-सी शीर्षलेखों को स्विफ्ट में आयात करने की आवश्यकता होगी। Using Swift with Cocoa and Objective-C बताते हैं ऐसा करने के तरीके:

अपने स्विफ्ट कोड के रूप में ही ढांचे लक्ष्य में ऑब्जेक्टिव-सी फ़ाइलों का सेट आयात करने के आप ऑब्जेक्टिव-सी छाता हैडर में उन फ़ाइलों को आयात करने की आवश्यकता होगी ढांचे के लिए।

एक ही ढांचे

  1. से स्विफ्ट में ऑब्जेक्टिव-सी कोड आयात करने के लिए सेटिंग्स बिल्ड के तहत, पैकेजिंग में, सुनिश्चित करें कि परिभाषित करता है मॉड्यूल है कि ढांचे के लक्ष्य के लिए सेटिंग हाँ करने के लिए सेट है।
  2. अपनी छतरी शीर्षलेख फ़ाइल में, प्रत्येक उद्देश्य-सी शीर्षलेख आयात करें जिसे आप स्विफ्ट में बेनकाब करना चाहते हैं। उदाहरण के लिए:

    #import "UIImage+animatedGIF.h"

फिर आप सेटअप अपने testImage इस प्रकार कर सकते हैं:

var testImage = UIImage.animatedImageWithAnimatedGIFData(
    NSData.dataWithContentsOfURL(url)) 
self.dataImageView.animationImages = testImage.images 
self.dataImageView.animationDuration = testImage.duration 
self.dataImageView.animationRepeatCount = 1 
self.dataImageView.image = testImage.images.lastObject 
self.dataImageView.startAnimating() 
+0

बढ़िया! धन्यवाद! यह ठीक है। लेकिन मेरे पास दूसरा सवाल है, IImage + एनिमेटेड जीआईएफ के बिना सीधे एक gif दिखाने के लिए अन्य रूप हैं? – user3745888

+0

UIImage _animated_ GIFs का समर्थन नहीं करता है, लेकिन आप अभी भी किसी भी अन्य छवि की तरह जीआईएफ छवियों का उपयोग कर सकते हैं ('UIImage (नाम:" image.gif ")')। हालांकि, अगर आप अपने एनिमेटेड जीआईएफ को अलग-अलग छवि जीआईएफ में विभाजित कर सकते हैं, तो आप उन्हें यूआईएममेज एनीमेशन में लोड करने में सक्षम हैं: http://stackoverflow.com/a/2578648/2155985 –

संबंधित मुद्दे