class Formotion::RowType::SwitchRow

Public Instance Methods

build_cell(cell) click to toggle source
# File lib/formotion/row_type/switch_row.rb, line 8
def build_cell(cell)
  cell.selectionStyle = self.row.selection_style || UITableViewCellSelectionStyleNone
  switchView = UISwitch.alloc.initWithFrame(CGRectZero)
  switchView.accessibilityLabel = (row.title || "") + " Switch"
  cell.accessoryView = cell.editingAccessoryView = switchView
  switchView.setOn(row.value || false, animated:false)
  switchView.when(UIControlEventValueChanged) do
    break_with_semaphore do
      row.value = switchView.isOn
    end
  end
  switchView.userInteractionEnabled = row.editable?
  observe(self.row, "value") do |old_value, new_value|
    break_with_semaphore do
      switchView.setOn(row.value || false, animated: false)
    end
  end
  nil
end