Sha256: 029d011bc911a8f169692fe4575045db5914524e421b0164cedae01830eebc03

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

module Formotion
  module RowType
    class ButtonRow < Base
      def button?
        true
      end

      # Does a clever little trick to override #layoutSubviews
      # for just this one UITableViewCell object, in order to
      # center it's labels horizontally.
      def build_cell(cell)
        cell.swizzle(:layoutSubviews) do
          def layoutSubviews
            old_layoutSubviews

            center = lambda {|frame, dimen|
              ((self.frame.size.send(dimen) - frame.size.send(dimen)) / 2.0)
            }

            self.textLabel.center = CGPointMake(self.frame.size.width / 2 - (FIELD_BUFFER / 2), self.textLabel.center.y)
            self.detailTextLabel.center = CGPointMake(self.frame.size.width / 2 - (FIELD_BUFFER / 2), self.detailTextLabel.center.y)
          end
        end
        nil
      end

      def on_select(tableView, tableViewDelegate)
        # Override in subclasses
        if self.row.on_tap_callback
          self.row.on_tap_callback.call(self.row)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
formotion-1.1.5 lib/formotion/row_type/button.rb
formotion-1.1.4 lib/formotion/row_type/button.rb
formotion-1.1.3 lib/formotion/row_type/button.rb