दिलचस्प पोस्ट
जावास्क्रिप्ट का उपयोग करने वाले एजेएक्स डेटा स्क्रैप / एवेसेड्रॉप? पायथन के साथ क्विक्सोर्ट घूर्णन बिटमैप कोड में सी # लघु / लंबे / अनंत शाब्दिक प्रारूप? अस्थिर structs "बुराई" क्यों कर रहे हैं? क्या कोई अजगर फ़ंक्शन (या अन्यथा इसके कोड को क्रमबद्ध) करने के लिए एक आसान तरीका है? Angularjs सबसे अच्छा अभ्यास minify OpenCV – मॉड्यूल cv2 नहीं मिल सकता है नोडजे स्थापित नहीं किया जा सकता है: / usr / bin / env: नोड: ऐसा कोई फ़ाइल या निर्देशिका नहीं है दो स्थानों या साधारण पूर्णांक तक दशमलव दिखाने के लिए स्ट्रिंग फ़ॉर्मेट का उपयोग करना IIS7 पर चलते समय 500 एमबी तक maxAllowedContentLength कैसे सेट करें? node.js fs.readdir रिकर्सिव निर्देशिका खोज मैं एक REST वेब सेवा का उपयोग कर मेटाडेटा के साथ एक फ़ाइल कैसे अपलोड करूं? जब सी # (या जावा, सी ++, इत्यादि) में रेगेक्स का उपयोग न करें मैक ओएस एक्स पर दिए गए टीसीपी पोर्ट पर कौन सुन रहा है?

Iphone UIImageView में एनिमेटेड जीआईएफ छवि जोड़ें

मुझे UIImageview में यूआरएल से एक एनिमेटेड जीआईएफ छवि लोड करने की आवश्यकता है I

जब मैंने सामान्य कोड का इस्तेमाल किया, तो छवि लोड नहीं हुई।

क्या एनिमेटेड जीआईएफ छवियों को लोड करने का कोई अन्य तरीका है?

वेब के समाधान से एकत्रित समाधान "Iphone UIImageView में एनिमेटेड जीआईएफ छवि जोड़ें"

UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; animatedImageView.animationImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"image1.gif"], [UIImage imageNamed:@"image2.gif"], [UIImage imageNamed:@"image3.gif"], [UIImage imageNamed:@"image4.gif"], nil]; animatedImageView.animationDuration = 1.0f; animatedImageView.animationRepeatCount = 0; [animatedImageView startAnimating]; [self.view addSubview: animatedImageView]; 

आप एक से अधिक gif चित्र लोड कर सकते हैं

आप निम्न छवि मैजिक आदेश का उपयोग करके अपने जीआईएफ को विभाजित कर सकते हैं:

 convert +adjoin loading.gif out%d.gif 

इसे एक स्वीकृत उत्तर मिला है, लेकिन मैं हाल ही में यूआईएमएज + एनिमेटेड जीआईएफ यूआईमेज विस्तार में आया हूं। यह निम्नलिखित श्रेणी प्रदान करता है:

 +[UIImage animatedImageWithAnimatedGIFURL:(NSURL *)url] 

आपको बस की अनुमति देता है:

 #import "UIImage+animatedGIF.h" UIImage* mygif = [UIImage animatedImageWithAnimatedGIFURL:[NSURL URLWithString:@"http://img.hiwab.com/objective-c/Rotating_earth_(large).gif"]]; 

जादू की तरह काम करता है

Gif छवि का उपयोग करने के लिए यहां सबसे अच्छा समाधान है अपने प्रोजेक्ट में गीथूब से SDWebImage जोड़ें।

 #import "UIImage+GIF.h" _imageViewAnimatedGif.image= [UIImage sd_animatedGIFNamed:@"thumbnail"]; 

इस लिंक को जांचें

https://github.com/mayoff/uiimage-from-animated-gif/blob/master/uiimage-from-animated-gif/UIImage%2BanimatedGIF.h

और इन स्थितियों को UIImage + एनिमेटेड GIF.h, UIImage + एनिमेटेड GIF.m आयात करें

इस कोड का उपयोग करें

  NSURL *urlZif = [[NSBundle mainBundle] URLForResource:@"dots64" withExtension:@"gif"]; NSString *path=[[NSBundle mainBundle]pathForResource:@"bar180" ofType:@"gif"]; NSURL *url=[[NSURL alloc] initFileURLWithPath:path]; imageVw.image= [UIImage animatedImageWithAnimatedGIFURL:url]; 

आशा है कि यह उपयोगी है

यह UIImageView का उपयोग करने की आवश्यकता को पूरा नहीं करता है, लेकिन हो सकता है कि यह आपके लिए चीजों को आसान बना दे। क्या आपने UIWebView का उपयोग करने पर विचार किया है?

 NSString *gifUrl = @"http://gifs.com"; NSURL *url = [NSURL URLWithString: gifUrl]; [webView loadRequest: [NSURLRequest requestWithURL:url] 

यदि आप चाहें, तो उस URL से लिंक करने के बजाय जो इंटरनेट की आवश्यकता होती है, आप एक HTML फ़ाइल को अपने Xcode प्रोजेक्ट में आयात कर सकते हैं और रूट को स्ट्रिंग में सेट कर सकते हैं।

यहां एक दिलचस्प लाइब्रेरी है: https://github.com/flipboard/FLAnimatedImage

मैंने डेमो का उदाहरण परीक्षण किया और यह महान काम कर रहा है यह UIImageView का बच्चा है इसलिए मुझे लगता है कि आप इसे अपने स्टोरीबोर्ड में सीधे भी इस्तेमाल कर सकते हैं।

चियर्स

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

यहां एक उदाहरण है:

 UIGifImage *gif = [[UIGifImage alloc] initWithData:imageData]; anUiImageView.image = gif; 

https://github.com/ObjSal/UIGifImage/releases से नवीनतम रिलीज़ डाउनलोड करें

– सैल

यदि आपको URL से जीआईएफ छवि को लोड करना है, तो आप हमेशा UIIFebView में एक छवि टैग में जीआईएफ एम्बेड कर सकते हैं।

आप https://github.com/Flipboard/FLAnimatedImage का उपयोग कर सकते हैं

 #import "FLAnimatedImage.h" NSData *dt=[NSData dataWithContentsOfFile:path]; imageView1 = [[FLAnimatedImageView alloc] init]; FLAnimatedImage *image1 = [FLAnimatedImage animatedImageWithGIFData:dt]; imageView1.animatedImage = image1; imageView1.frame = CGRectMake(0, 5, 168, 80); [self.view addSubview:imageView1]; 

स्विफ्ट 3:

जैसा कि ऊपर सुझाव दिया गया है कि मैं एक FLAnimatedImageView के साथ FLAnimatedImage का उपयोग कर रहा हूँ। और मैं जीसीएफ को एक्ससेसेट्स से सेट किए गए डेटा के रूप में लोड कर रहा हूं। यह मुझे आईफोन और आईपैड के लिए अलग-अलग जीआईफ़्स प्रदान करने की अनुमति देता है और एप स्लिसिंग प्रयोजनों के लिए। यह मैंने कोशिश की है जो कुछ भी की तुलना में कहीं ज्यादा performant है .stopAnimating () का उपयोग करना रोकना भी आसान है।

 if let asset = NSDataAsset(name: "animation") { let gifData = asset.data let gif = FLAnimatedImage(animatedGIFData: gifData) imageView.animatedImage = gif } 

स्विफ्ट 3

स्विफ्ट संस्करण की आवश्यकता वाले लोगों के लिए यहां अपडेट है!

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

 extension UIView{ func animateWithGIF(name: String){ let htmlString: String = "<!DOCTYPE html><html><head><title></title></head>" + "<body style=\"background-color: transparent;\">" + "<img src=\""+name+"\" align=\"middle\" style=\"width:100%;height:100%;\">" + "</body>" + "</html>" let path: NSString = Bundle.main.bundlePath as NSString let baseURL: URL = URL(fileURLWithPath: path as String) // to load images just specifying its name without full path let frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height) let gifView = UIWebView(frame: frame) gifView.isOpaque = false // The drawing system composites the view normally with other content. gifView.backgroundColor = UIColor.clear gifView.loadHTMLString(htmlString, baseURL: baseURL) var s: [UIView] = self.subviews for i in 0 ..< s.count { if s[i].isKind(of: UIWebView.self) { s[i].removeFromSuperview() } } self.addSubview(gifView) } func animateWithGIF(url: String){ self.animateWithGIF(name: url) } } 

मैंने UIView लिए एक एक्सटेंशन बनाया है जो एक UIWebView को सबव्यू के रूप में जोड़ता है और .gif छवियों को केवल उसके नाम से गुजरता है।

अब मेरे UIViewController में मेरे पास 'लोडिंगव्यू' नाम वाला एक UIView जो मेरा 'लोडिंग' सूचक है और जब भी मैं .gif छवि दिखाना चाहता था, मैंने ऐसा कुछ किया:

 class ViewController: UIViewController { @IBOutlet var loadingView: UIView! override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) configureLoadingView(name: "loading.gif") } override func viewDidLoad() { super.viewDidLoad() // .... some code // show "loading" image showLoadingView() } func showLoadingView(){ loadingView.isHidden = false } func hideLoadingView(){ loadingView.isHidden = true } func configureLoadingView(name: String){ loadingView.animateWithGIF(name: "name")// change the image } } 

जब मैं जीआईएफ इमेज को बदलना चाहता था, बस फंक्शन showLoadingView() को अपनी नई .gif छवि और कॉल showLoadingView() के नाम से बुलाया जाता है, hideLoadingView() ठीक से सब कुछ ठीक काम करता है!

परंतु…

… यदि आपके पास छवि भरी हुई है तो आप इसे UIImage.animatedImageNamed नामक एक UIImage स्थैतिक विधि के साथ एक पंक्ति में सजीव कर सकते हैं। UIImage.animatedImageNamed इस तरह से UIImage.animatedImageNamed है:

imageView.image = UIImage.animatedImageNamed("imageName", duration: 1.0)

डॉक्स से:

यह विधि नाम पैरामीयर में दिए गए मूल फ़ाइल नाम के लिए कई संख्याओं को जोड़कर फ़ाइलों की एक श्रृंखला को लोड करती है। एनिमेटेड छवि में शामिल सभी छवियों को एक ही आकार और पैमाने साझा करना चाहिए।

या आप इसे UIImage.animatedImageWithImages विधि से इस तरह बना सकते हैं:

 let images: [UIImage] = [UIImage(named: "imageName1")!, UIImage(named: "imageName2")!, ..., UIImage(named: "imageNameN")!] imageView.image = UIImage.animatedImage(with: images, duration: 1.0) 

डॉक्स से:

छवियों के मौजूदा सेट से एक एनिमेटेड छवि बनाता है और देता है एनिमेटेड छवि में शामिल सभी छवियों को एक ही आकार और पैमाने साझा करना चाहिए।

स्विफ्ट: मान लीजिए आपके नाम पर एनिमेटेड जीआईएफ छवि है: "abg.gif"। जैसे कि UIImage GIF का समर्थन करता है, लेकिन एनिमेटेड जीआईएफ नहीं करता, तो आप एप्पल डेवलपर द्वारा प्रदान की गई त्वरित लुक फ़्रेमवर्क का उपयोग कर सकते हैं। (कोई तृतीय पक्ष की आवश्यकता नहीं है)। नीचे सरल काम कोड है ..

QuickLook आयात करें // त्वरित लॉक ढांचे को आयात करना भूल नहीं है I

 class ViewController: UIViewController,QLPreviewControllerDataSource { override func viewDidLoad() { super.viewDidLoad() let qpc = QLPreviewController() qpc.dataSource = self self.addChildViewController(qpc) self.view.addSubview(qpc.view) } func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int{ return 1 } func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem{ let path = NSBundle.mainBundle().pathForResource("abg", ofType: "gif") return NSURL(fileURLWithPath:path!) }