Sha256: 9028e745cfcc92f541fd92f8a643ded9832b7aed4bdb9e3a9cc99c6372523890

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

module Formotion
  module RowType
    class OptionsRow < Base
      include BW::KVO

      def build_cell(cell)
        cell.selectionStyle = UITableViewCellSelectionStyleNone
        segmentedControl = UISegmentedControl.alloc.initWithItems(row.items || [])
        segmentedControl.selectedSegmentIndex = row.items.index(row.value) if row.value
        segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar
        cell.accessoryView = cell.editingAccessoryView = segmentedControl

        segmentedControl.when(UIControlEventValueChanged) do
          break_with_semaphore do
            row.value = row.items[segmentedControl.selectedSegmentIndex]
          end
        end
        observe(self.row, "value") do |old_value, new_value|
          break_with_semaphore do
            if row.value
              segmentedControl.selectedSegmentIndex = row.items.index(row.value)
            else
              segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment
            end
          end
        end

        nil
      end


    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
formotion-1.1.4 lib/formotion/row_type/options_row.rb
formotion-1.1.3 lib/formotion/row_type/options_row.rb
formotion-1.1.2 lib/formotion/row_type/options_row.rb
formotion-1.1.1 lib/formotion/row_type/options_row.rb
formotion-1.1 lib/formotion/row_type/options_row.rb
formotion-1.0 lib/formotion/row_type/options_row.rb