2014-06-30 26 views
5

UIImageView uygulamasında bir gif kullanmak istiyorum, ancak yapamam.Swift'de UIImageView'e gif nasıl gösterilir?

- (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]; 
} 

Swift: Benim kodudur

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

Ben animatedImageWithAnimatedGIFData vardı nesnel C ama swift ben bu çağrı bilmiyorum ya da değil varsa ..

teşekkürler!

+0

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

cevap

11

+UIImage animatedImageWithAnimatedGIFData: için https://github.com/mayoff/uiimage-from-animated-gif kullanıyorsunuz ve kaynak kodu Objective-C'de.

Önce Objective-C başlıklarınızı Swift'e aktarmanız gerekir.

Eğer Objective-C şemsiye başlığına bu dosyaları almak gerekir, sizin Swift koduyla aynı çerçeve hedefteki Objective-C dosyaları kümesi aktarmak için: Using Swift with Cocoa and Objective-C Bunun nasıl açıklıyor çerçevesi için.

o çerçeve hedefi için ayarı tanımlar Modülü Evet olarak ayarlanmış olduğundan emin olun Ambalajlar, Yapı Ayarları altında aynı çerçevede

  1. gelen Swift içine Objective-C kodu almak için.
  2. Şemsiye başlık dosyanızda, Swift'e yansıtmak istediğiniz her Objective-C başlığını içe aktarın. Örneğin:

    #import "UIImage+animatedGIF.h"

Daha sonra kurulum aşağıdaki senin testImage gibi:

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

Harika! Teşekkürler! Tamam. Ama başka bir sorum var, IImage + animatedGIF olmadan doğrudan bir gif göstermek için başka bir form var mı? – user3745888

+0

UIImage, _animated_ GIF'leri desteklemez, ancak GIF resimlerini tıpkı diğer resimler gibi kullanabilirsiniz ('UIImage (" image.gif ")). Ancak, animasyonlu GIF'inizi ayrı fotoğraf GIF'lerine bölebiliyorsanız, bunları UIImage animasyonuna şu şekilde yükleyebilirsiniz: http://stackoverflow.com/a/2578648/2155985 –