Class: MotionPrime::LabelElement

Inherits:
BaseElement show all
Includes:
ElementContentPaddingMixin, ElementContentTextMixin, ElementTextMixin
Defined in:
motion-prime/elements/label.rb

Direct Known Subclasses

ErrorMessageElement

Instance Attribute Summary

Attributes inherited from BaseElement

#name, #options, #screen, #section, #styles, #view, #view_name

Instance Method Summary collapse

Methods included from ElementTextMixin

#attributed_string, #extract_attributed_string_options, #html_string

Methods included from ElementContentTextMixin

#attributed_text?, #attributed_text_for_text, #cached_content_height, #cached_content_width, #content_font, #content_height, #content_text, #content_width, #current_attributed_text, #height_for_attributed_text, #height_for_text, #multiline_content_width, #width_for_attributed_text, #width_for_text

Methods included from ElementContentPaddingMixin

#cached_content_outer_height, #cached_content_outer_width, #content_outer_height, #content_outer_width, #content_padding_bottom, #content_padding_height, #content_padding_left, #content_padding_right, #content_padding_top, #content_padding_width, #default_padding_for

Methods inherited from BaseElement

#add_target, after_render, before_render, #bind_gesture, #cell_element?, #cell_section?, #compute_options!, #computed_options, #dealloc, factory, #hide, #initialize, #notify_section_after_render, #notify_section_before_render, #reload!, #render, #render!, #rerender!, #show, #update, #update_options, #update_with_options

Methods included from HasClassFactory

#camelize_factory, #class_factory, #low_camelize_factory, #underscore_factory

Methods included from HasStyleOptions

#extract_font_from

Methods included from HasStyleChainBuilder

#build_styles_chain

Methods included from HasNormalizer

#debug_info, #element?, #normalize_object, #normalize_options, #normalize_value

Constructor Details

This class inherits a constructor from MotionPrime::BaseElement

Instance Method Details

#set_text(value) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'motion-prime/elements/label.rb', line 33

def set_text(value)
  options[:text] = computed_options[:text] = value
  styler = ViewStyler.new(view, CGRectZero, computed_options)
  if styler.options[:attributed_text]
    view.attributedText = styler.options[:attributed_text]
  else
    view.text = value
  end
  @content_height = nil
  size_to_fit
end

#size_to_fitObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'motion-prime/elements/label.rb', line 14

def size_to_fit
  if computed_options[:size_to_fit]
    if computed_options[:width]
      view.setHeight([cached_content_outer_height, computed_options[:height]].compact.min)
    else
      view.sizeToFit
      # we should re-set values, because sizeToFit do not use padding
      view.setWidth(view.bounds.size.width + content_padding_width)
      view.setHeight(computed_options[:height] || (view.bounds.size.height + content_padding_height))
    end
  end
end

#size_to_fit_if_neededObject



27
28
29
30
31
# File 'motion-prime/elements/label.rb', line 27

def size_to_fit_if_needed
  if computed_options[:size_to_fit] && computed_options[:width]
    @computed_options[:height_to_fit] = content_outer_height
  end
end

#view_classObject



10
11
12
# File 'motion-prime/elements/label.rb', line 10

def view_class
  "MPLabel"
end