Skip to content

Instantly share code, notes, and snippets.

@paulmars
Created October 11, 2016 18:05
Show Gist options
  • Save paulmars/9fa1e90addb06efd8ca1ca8d97747496 to your computer and use it in GitHub Desktop.
Save paulmars/9fa1e90addb06efd8ca1ca8d97747496 to your computer and use it in GitHub Desktop.
UIView for normal picture / animated picture
//
// TypedImage.swift
//
// Created by Paul McKellar on 8/22/16.
// Copyright © 2016 Paul McKellar. All rights reserved.
//
import UIKit
import FLAnimatedImage
class TypedImageView: UIView {
var buffer: NSMutableData?
var imageView: UIImageView!
var animatedImageView: FLAnimatedImageView!
override init(frame: CGRect) {
super.init(frame: frame);
self.animatedImageView = FLAnimatedImageView()
self.animatedImageView.frame = frame
self.animatedImageView.contentMode = .scaleAspectFit
self.imageView = UIImageView()
self.imageView.frame = frame
self.imageView.contentMode = .scaleAspectFit
return;
}
required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented"); }
func setImage(buffer: NSMutableData) -> Void {
self.animatedImageView.removeFromSuperview()
self.imageView.removeFromSuperview()
self.buffer = buffer
let imageInspect = ImageInspection(data: buffer)
if (imageInspect.ext() == "gif") {
self.animatedImageView.animatedImage = FLAnimatedImage(animatedGIFData: buffer as Data!)
self.animatedImageView.frame = self.frame
self.addSubview(self.animatedImageView)
}
else {
self.imageView.image = UIImage(data: buffer as Data)
self.imageView.frame = self.frame
self.addSubview(self.imageView)
}
}
func setSize(size: CGSize) -> Void {
self.imageView.frame.size = size
self.animatedImageView.frame.size = size
self.frame.size = size
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment