Sha256: 661a90b0d959f9e6395e517b7aa085fc8b6a4f8548a050b2138d6484c833a72d
Contents?: true
Size: 1.93 KB
Versions: 2
Compression:
Stored size: 1.93 KB
Contents
# This Mixin will be included only to sections, which added as cell to table section. module MotionPrime module CellSectionMixin extend ::MotionSupport::Concern include SectionWithContainerMixin attr_writer :table attr_reader :pending_display included do class_attribute :custom_cell_name container_element type: :table_view_cell end def table @table ||= options[:table].try(:weak_ref) end def section_styles @section_styles ||= table.try(:cell_styles, self) || {} end def cell_type @cell_type ||= begin self.is_a?(BaseFieldSection) ? :field : :cell end end def cell_name self.class.custom_cell_name || begin return name unless table table_name = table.name.gsub('_table', '') name.gsub("#{table_name}_", '') end end def container_bounds @container_bounds ||= CGRectMake(0, 0, table.table_view.bounds.size.width, container_height) end # should do nothing, because table section will care about it. def render_container(options = {}, &block) block.call end def init_container_element(options = {}) options[:styles] ||= [] options[:styles] = [:"#{table.name}_first_cell"] if table.data.first == self options[:styles] = [:"#{table.name}_last_cell"] if table.data.last == self super(options) end def pending_display! @pending_display = true display unless table.decelerating end def display @pending_display = false container_view.setNeedsDisplay end def dealloc # TODO: remove this when solve this problem: dealloc TableCells on TableView.reloadData (in case when reuseIdentifier has been used) container_view.section = nil if container_view.respond_to?(:setSection) super end module ClassMethods def set_cell_name(value) self.custom_cell_name = value end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
motion-prime-0.8.1 | motion-prime/sections/_cell_section_mixin.rb |
motion-prime-0.8.0 | motion-prime/sections/_cell_section_mixin.rb |