motion-table 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -45,9 +45,11 @@ class MyController < UITableViewController
45
45
  title: "My App Settings",
46
46
  cells: [{
47
47
  title: "Be Awesome",
48
- accessory: :switch,
49
- accessoryDefault: true,
50
- accessoryAction: :save_being_awesome
48
+ subtitle: "Do so. Please."
49
+ image: {
50
+ image: UIImage.imageNamed("image"),
51
+ radius: 12
52
+ }
51
53
  }, {
52
54
  title: "Mute",
53
55
  accessory: :switch,
@@ -68,12 +70,6 @@ class MyController < UITableViewController
68
70
  # Implement your edit_profile view here
69
71
  end
70
72
 
71
- def save_being_awesome(args)
72
- # Depending on whether the switch is on or off,
73
- # args => { value: true } or
74
- # args => { value: false }
75
- end
76
-
77
73
  def save_mute(args)
78
74
  # Depending on whether the switch is on or off,
79
75
  # args => { value: true } or
@@ -87,7 +83,6 @@ end
87
83
  ```ruby
88
84
  class MyController < UITableViewController
89
85
  include MotionTable::PlainTable
90
- inclued MotionTable::SearchableTable # For search capability
91
86
 
92
87
  def viewDidLoad
93
88
  super
@@ -108,7 +103,7 @@ class MyController < UITableViewController
108
103
  }
109
104
  ]
110
105
 
111
- self.makeSearchable # Will add search capability if you include MotionTable::SearchableTable, nothing more needed :)
106
+ self.makeSearchable # Will add search capability, nothing more needed :)
112
107
  self.view = self.createTableViewFromData(@plain_table_view_data)
113
108
  end
114
109
 
@@ -1,11 +1,21 @@
1
1
  module MotionTable
2
2
  module SearchableTable
3
- def makeSearchable
4
- searchBar = UISearchBar.alloc.initWithFrame(CGRectMake(0, 0, 320, 44))
5
- @contactsSearchDisplayController = UISearchDisplayController.alloc.initWithSearchBar(searchBar, contentsController: self)
6
- @contactsSearchDisplayController.delegate = self
7
- @contactsSearchDisplayController.searchResultsDataSource = self
8
- @contactsSearchDisplayController.searchResultsDelegate = self
3
+ def makeSearchable(params={})
4
+ params[:frame] ||= CGRectMake(0, 0, 320, 44)
5
+ params[:contentController] ||= self
6
+ params[:delegate] ||= self
7
+ params[:searchResultsDataSource] ||= self
8
+ params[:searchResultsDelegate] ||= self
9
+
10
+ searchBar = UISearchBar.alloc.initWithFrame(params[:frame])
11
+ if params[:searchBar] && params[:searchBar][:placeholder]
12
+ searchBar.placeholder = params[:searchBar][:placeholder]
13
+ end
14
+
15
+ @contactsSearchDisplayController = UISearchDisplayController.alloc.initWithSearchBar(searchBar, contentsController: params[:contentController])
16
+ @contactsSearchDisplayController.delegate = params[:delegate]
17
+ @contactsSearchDisplayController.searchResultsDataSource = params[:searchResultsDataSource]
18
+ @contactsSearchDisplayController.searchResultsDelegate = params[:searchResultsDelegate]
9
19
 
10
20
  self.tableView.tableHeaderView = searchBar
11
21
  end
@@ -33,6 +43,7 @@ module MotionTable
33
43
 
34
44
  def searchDisplayControllerWillEndSearch(controller)
35
45
  @mt_table_view_groups = @original_data.clone
46
+ @original_data = nil
36
47
  end
37
48
 
38
49
  def searchDisplayControllerWillBeginSearch(controller)
@@ -30,28 +30,47 @@ module MotionTable
30
30
  def tableView(tableView, titleForHeaderInSection:section)
31
31
  return sectionAtIndex(section)[:title]
32
32
  end
33
+
34
+ # Set table_data_index if you want the right hand index column (jumplist)
35
+ def sectionIndexTitlesForTableView(tableView)
36
+ self.table_data_index if respond_to? :table_data_index
37
+ end
38
+
33
39
 
34
40
  def tableView(tableView, cellForRowAtIndexPath:indexPath)
35
41
  dataCell = cellAtSectionAndIndex(indexPath.section, indexPath.row)
42
+ dataCell[:cellStyle] ||= UITableViewCellStyleDefault
36
43
 
37
44
  cellIdentifier = "Cell"
38
45
 
39
46
  tableCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier)
40
47
  unless tableCell
41
- tableCell = UITableViewCell.alloc.initWithFrame(CGRectZero, reuseIdentifier:cellIdentifier)
42
- tableCell.accessoryView = dataCell[:accessoryView] if dataCell[:accessoryView]
43
-
44
- if dataCell[:accessory] && dataCell[:accessory] == :switch
45
- switchView = UISwitch.alloc.initWithFrame(CGRectZero)
46
- switchView.addTarget(self, action: "accessoryToggledSwitch:", forControlEvents:UIControlEventValueChanged);
47
- switchView.on = true if dataCell[:accessoryDefault]
48
- tableCell.accessoryView = switchView
49
- end
48
+ tableCell = UITableViewCell.alloc.initWithStyle(dataCell[:cellStyle], reuseIdentifier:cellIdentifier)
49
+ end
50
+
51
+ tableCell.accessoryView = dataCell[:accessoryView] if dataCell[:accessoryView]
52
+
53
+ if dataCell[:accessory] && dataCell[:accessory] == :switch
54
+ switchView = UISwitch.alloc.initWithFrame(CGRectZero)
55
+ switchView.addTarget(self, action: "accessoryToggledSwitch:", forControlEvents:UIControlEventValueChanged);
56
+ switchView.on = true if dataCell[:accessoryDefault]
57
+ tableCell.accessoryView = switchView
58
+ end
59
+
60
+ if dataCell[:subtitle]
61
+ tableCell.detailTextLabel.text = dataCell[:subtitle]
62
+ end
63
+
64
+
65
+ if dataCell[:image]
66
+ tableCell.imageView.layer.masksToBounds = true
67
+ tableCell.imageView.image = dataCell[:image][:image]
68
+ tableCell.imageView.layer.cornerRadius = dataCell[:image][:radius] if dataCell[:image][:radius]
50
69
  end
70
+
51
71
  tableCell.text = dataCell[:title]
52
72
  return tableCell
53
73
  end
54
-
55
74
  def sectionAtIndex(index)
56
75
  @mt_table_view_groups.at(index)
57
76
  end
@@ -79,12 +98,11 @@ module MotionTable
79
98
  end
80
99
 
81
100
  def triggerAction(action, arguments)
82
- $stderr.puts "Action: #{action.to_s} and args #{arguments.to_s}"
83
101
  if self.respond_to?(action)
84
102
  expectedArguments = self.method(action).arity
85
103
  if expectedArguments == 0
86
104
  self.send(action)
87
- elsif expectedArguments == 1
105
+ elsif expectedArguments == 1 || expectedArguments == -1
88
106
  self.send(action, arguments)
89
107
  else
90
108
  MotionTable::Console.log("MotionTable warning: #{action} expects #{expectedArguments} arguments. Maximum number of required arguments for an action is 1.", withColor: MotionTable::Console::RED_COLOR)
@@ -1,3 +1,3 @@
1
1
  module MotionTable
2
- VERSION = "0.1.6" unless defined?(MotionTable::VERSION)
2
+ VERSION = "0.1.7" unless defined?(MotionTable::VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-31 00:00:00.000000000 Z
12
+ date: 2012-09-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: MotionTable is a RubyMotion gem that makes it easy to handle UITableViews
15
15
  from a UITableViewController. Simply include in the module in your controller.