simple-view 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  module SimpleView
2
- VERSION = "0.6.3"
2
+ VERSION = "0.6.5"
3
3
  end
@@ -1,7 +1,6 @@
1
1
  module SimpleView
2
2
  class ViewBuilder
3
3
  attr_reader :view
4
- attr_accessor :top, :left, :bottom, :right, :width, :height
5
4
 
6
5
  # first args (optional): bounds
7
6
  # second args (optional): options
@@ -17,13 +16,13 @@ module SimpleView
17
16
  options = args.size > 1 ? args[1] : {}
18
17
  end
19
18
 
20
- builder = ViewBuilder.new klass, options
21
- builder.size_within bounds
19
+ builder = ViewBuilder.new klass, bounds, options
22
20
  builder.view
23
21
  end
24
22
 
25
- def initialize klass, options = {}
23
+ def initialize klass, bounds = CGRectZero, options = {}
26
24
  options = extended_options_with_style klass, options
25
+ calculate_frame_for bounds, options
27
26
  convert_primitives_to_objects_in_hash options
28
27
 
29
28
  @view = view_for_class klass, klass, options
@@ -62,44 +61,50 @@ module SimpleView
62
61
  end
63
62
  end
64
63
 
65
- def size_within bounds
66
- frame = @view.frame
64
+ def calculate_frame_for bounds, options = {}
65
+ width = options.delete(:width)
66
+ height = options.delete(:height)
67
+ top = options.delete(:top)
68
+ right = options.delete(:right)
69
+ bottom = options.delete(:bottom)
70
+ left = options.delete(:left)
67
71
 
68
72
  if width.nil? && height.nil? && right.nil? && bottom.nil?
69
- @view.sizeToFit
73
+ options[:frame] = CGRectZero
70
74
  else
75
+ frame = CGRectZero
71
76
  max_width = bounds.size.width
72
77
  max_height = bounds.size.height
73
78
 
74
79
  if width.nil?
75
- self.width = 0.0
80
+ width = 0.0
76
81
  elsif width > 0 && width <= 1
77
82
  if right.nil?
78
- self.left ||= 0
79
- self.right = max_width - max_width * width
83
+ left ||= 0
84
+ right = max_width - max_width * width
80
85
  else
81
- self.left = max_width - max_width * width
86
+ left = max_width - max_width * width
82
87
  end
83
88
  end
84
89
 
85
90
  if height.nil?
86
- self.height = 0.0
91
+ height = 0.0
87
92
  elsif height > 0 && height <= 1
88
93
  if bottom.nil?
89
- self.top ||= 0
90
- self.bottom = max_height - max_height * height
94
+ top ||= 0
95
+ bottom = max_height - max_height * height
91
96
  else
92
- self.top = max_height - max_height * height
97
+ top = max_height - max_height * height
93
98
  end
94
99
  end
95
100
 
96
- @view.autoresizingMask = UIViewAutoresizingNone
97
- @view.autoresizingMask |= UIViewAutoresizingFlexibleTopMargin if top.nil?
98
- @view.autoresizingMask |= UIViewAutoresizingFlexibleLeftMargin if left.nil?
99
- @view.autoresizingMask |= UIViewAutoresizingFlexibleBottomMargin if bottom.nil?
100
- @view.autoresizingMask |= UIViewAutoresizingFlexibleRightMargin if right.nil?
101
- @view.autoresizingMask |= UIViewAutoresizingFlexibleWidth if !left.nil? && !right.nil?
102
- @view.autoresizingMask |= UIViewAutoresizingFlexibleHeight if !top.nil? && !bottom.nil?
101
+ mask = UIViewAutoresizingNone
102
+ mask |= UIViewAutoresizingFlexibleTopMargin if top.nil?
103
+ mask |= UIViewAutoresizingFlexibleLeftMargin if left.nil?
104
+ mask |= UIViewAutoresizingFlexibleBottomMargin if bottom.nil?
105
+ mask |= UIViewAutoresizingFlexibleRightMargin if right.nil?
106
+ mask |= UIViewAutoresizingFlexibleWidth if !left.nil? && !right.nil?
107
+ mask |= UIViewAutoresizingFlexibleHeight if !top.nil? && !bottom.nil?
103
108
 
104
109
  if !left.nil? && !right.nil?
105
110
  frame.origin.x = left
@@ -129,7 +134,8 @@ module SimpleView
129
134
  frame.size.height = height
130
135
  end
131
136
 
132
- @view.frame = frame
137
+ options[:frame] = frame
138
+ options[:autoresizingMask] = mask
133
139
  end
134
140
  end
135
141
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.5
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: 2013-02-14 00:00:00.000000000 Z
12
+ date: 2013-02-21 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: RubyMotion DSL for UIKit
15
15
  email: