Sha256: 384e1b18c10383e631228b8ecfa5a2c452f6689687395bc97213b06be0c39ddc
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module ProMotion module RefreshableTable def make_refreshable(params={}) pull_message = params[:pull_message] || "Pull to refresh" @refreshing = params[:refreshing] || "Refreshing data..." @updated_format = params[:updated_format] || "Last updated at %s" @updated_time_format = params[:updated_time_format] || "%l:%M %p" @refreshable_callback = params[:callback]|| :on_refresh @refresh_control = UIRefreshControl.alloc.init @refresh_control.attributedTitle = NSAttributedString.alloc.initWithString(pull_message) @refresh_control.addTarget(self, action:'refreshView:', forControlEvents:UIControlEventValueChanged) self.refreshControl = @refresh_control end alias :makeRefreshable :make_refreshable def start_refreshing return unless @refresh_control @refresh_control.beginRefreshing end alias :begin_refreshing :start_refreshing def end_refreshing return unless @refresh_control @refresh_control.attributedTitle = NSAttributedString.alloc.initWithString(sprintf(@updated_format, Time.now.strftime(@updated_time_format))) @refresh_control.endRefreshing end alias :stop_refreshing :end_refreshing ######### iOS methods, headless camel case ####### # UIRefreshControl Delegates def refreshView(refresh) refresh.attributedTitle = NSAttributedString.alloc.initWithString(@refreshing) if @refreshable_callback && self.respond_to?(@refreshable_callback) self.send(@refreshable_callback) else PM.logger.warn "You must implement the '#{@refreshable_callback}' method in your TableScreen." end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ProMotion-0.7.4 | lib/ProMotion/screens/_tables/_refreshable_table.rb |