Module: ProMotion::Table::Longpressable
- Included in:
- ProMotion::Table
- Defined in:
- lib/ProMotion/table/extensions/longpressable.rb
Instance Method Summary collapse
Instance Method Details
#make_longpressable(params = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/ProMotion/table/extensions/longpressable.rb', line 5 def make_longpressable(params={}) params = { min_duration: 1.0 }.merge(params) long_press_gesture = UILongPressGestureRecognizer.alloc.initWithTarget(self, action:"on_long_press:") long_press_gesture.minimumPressDuration = params[:min_duration] long_press_gesture.delegate = self self.table_view.addGestureRecognizer(long_press_gesture) end |
#on_long_press(gesture) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/ProMotion/table/extensions/longpressable.rb', line 16 def on_long_press(gesture) return unless gesture.state == UIGestureRecognizerStateBegan gesture_point = gesture.locationInView(pressed_table_view) index_path = pressed_table_view.indexPathForRowAtPoint(gesture_point) return unless index_path data_cell = self.promotion_table_data.cell(index_path: index_path) return unless data_cell trigger_action(data_cell[:long_press_action], data_cell[:arguments], index_path) if data_cell[:long_press_action] end |