Class: Walt::ImageAsset

Inherits:
Asset
  • Object
show all
Defined in:
lib/walt/asset/image.rb

Constant Summary collapse

PROPERTIES =
[:url]

Instance Method Summary collapse

Methods inherited from Asset

#content_mode=, for, #on_ready, #view_content_mode

Methods included from Support::AttrDefault

#attr_default

Constructor Details

#initialize(params = {}) ⇒ ImageAsset

Returns a new instance of ImageAsset.



14
15
16
17
18
19
20
21
22
# File 'lib/walt/asset/image.rb', line 14

def initialize(params = {})
  super

  params.is_a?(NSDictionary) && params.each do |key, value|
    if PROPERTIES.include?(key.to_sym)
      self.send("#{key}=", value)
    end
  end
end

Instance Method Details

#viewObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/walt/asset/image.rb', line 24

def view
  if !@view
    @view = UIImageView.alloc.initWithFrame(CGRectZero)
    @view.frame = [self.position || CGPointZero, self.size || CGSizeZero]
    @view.contentMode = self.view_content_mode
    @view.clipsToBounds = self.clips_to_bounds
    url = NSURL.URLWithString(self.url)
    if !@view.respond_to?("af_imageRequestOperation")
      raise "You need to add the AFNetworking pod for remote images"
    end
    @view.setImageWithURLRequest(NSURLRequest.requestWithURL(url), 
          placeholderImage:nil,
          success: lambda {|request, response, image|
            @view.image = image
            if !self.size
              @view.sizeToFit
            end
            Dispatch::Queue.main.async do
              self.on_ready(true)
            end
          },
          failure: lambda {|request, response, error|

          })
    @view
  end
  @view
end