Skip to content

Commit 9faf7a8

Browse files
Closes #1 - Add ability to remove a view from the StackPanel.
1 parent e40dae3 commit 9faf7a8

File tree

5 files changed

+128
-6
lines changed

5 files changed

+128
-6
lines changed

StackPanel/StackPanel.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,17 @@
3535
id<StackPanelDelegate> delegate;
3636
}
3737
@property(nonatomic,assign) id<StackPanelDelegate> delegate;
38+
39+
// Add
3840
- (void)addStackedView:(UIView*)v;
3941
- (void)addStackedView:(UIView *)v reload:(BOOL)yn;
4042
- (void)addStackedViews:(NSArray*)a;
43+
44+
// Remove
45+
- (void)removeStackedViewAtIndex:(NSInteger)index;
46+
- (void)removeStackedViewAtIndex:(NSInteger)index animation:(UITableViewRowAnimation)rowAnimation;
47+
- (void)removeStackedView:(UIView*)aView;
48+
- (void)removeStackedView:(UIView*)aView animation:(UITableViewRowAnimation)rowAnimation;
49+
4150
- (void)reloadStack;
4251
@end

StackPanel/StackPanel.m

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,39 @@ - (void)addStackedViews:(NSArray*)a
117117
[tableView reloadData];
118118
}
119119

120+
- (void)removeStackedViewAtIndex:(NSInteger)index
121+
{
122+
[self removeStackedViewAtIndex:index animation:UITableViewRowAnimationNone];
123+
}
124+
125+
- (void)removeStackedViewAtIndex:(NSInteger)index animation:(UITableViewRowAnimation)rowAnimation
126+
{
127+
if ([cells count] > index)
128+
{
129+
[cells removeObjectAtIndex:index];
130+
}
131+
132+
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:index inSection:0]]
133+
withRowAnimation:rowAnimation];
134+
}
135+
136+
- (void)removeStackedView:(UIView*)aView
137+
{
138+
[self removeStackedView:aView animation:UITableViewRowAnimationNone];
139+
}
140+
141+
- (void)removeStackedView:(UIView*)aView animation:(UITableViewRowAnimation)rowAnimation
142+
{
143+
for (int i=0; i<[cells count]; i++)
144+
{
145+
UITableViewCell *cell = [cells objectAtIndex:i];
146+
if (aView == [cell.contentView.subviews objectAtIndex:0])
147+
{
148+
[self removeStackedViewAtIndex:i animation:rowAnimation];
149+
}
150+
}
151+
}
152+
120153
- (void)reloadStack
121154
{
122155
[tableView reloadData];

StackPanel/StackPanelAppDelegate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
}
1616
@property(nonatomic,retain) IBOutlet StackPanel *stackPanel;
1717
@property (nonatomic, retain) IBOutlet UIWindow *window;
18-
18+
- (IBAction)deleteTopItem:(id)sender;
1919
@end

StackPanel/StackPanelAppDelegate.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
3232
return YES;
3333
}
3434

35+
- (IBAction)deleteTopItem:(id)sender
36+
{
37+
[self.stackPanel removeStackedViewAtIndex:0 animation:UITableViewRowAnimationNone];
38+
}
39+
3540
- (void)dealloc
3641
{
3742
[stackPanel release];

StackPanel/en.lproj/MainWindow.xib

Lines changed: 80 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@
1212
</object>
1313
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
1414
<bool key="EncodedWithXMLCoder">YES</bool>
15-
<string>IBUIWindow</string>
15+
<string>IBProxyObject</string>
16+
<string>IBUIBarButtonItem</string>
1617
<string>IBUICustomObject</string>
18+
<string>IBUIWindow</string>
19+
<string>IBUINavigationBar</string>
20+
<string>IBUINavigationItem</string>
1721
<string>IBUIView</string>
18-
<string>IBProxyObject</string>
1922
</object>
2023
<object class="NSArray" key="IBDocument.PluginDependencies">
2124
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -49,7 +52,7 @@
4952
<object class="IBUIView" id="382502804">
5053
<reference key="NSNextResponder" ref="380026005"/>
5154
<int key="NSvFlags">1298</int>
52-
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
55+
<string key="NSFrame">{{0, 64}, {320, 416}}</string>
5356
<reference key="NSSuperview" ref="380026005"/>
5457
<reference key="NSWindow"/>
5558
<reference key="NSNextKeyView"/>
@@ -62,12 +65,35 @@
6265
</object>
6366
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
6467
</object>
68+
<object class="IBUINavigationBar" id="4252644">
69+
<reference key="NSNextResponder" ref="380026005"/>
70+
<int key="NSvFlags">1314</int>
71+
<string key="NSFrame">{{0, 20}, {320, 44}}</string>
72+
<reference key="NSSuperview" ref="380026005"/>
73+
<reference key="NSWindow"/>
74+
<reference key="NSNextKeyView" ref="382502804"/>
75+
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
76+
<object class="NSArray" key="IBUIItems">
77+
<bool key="EncodedWithXMLCoder">YES</bool>
78+
<object class="IBUINavigationItem" id="479537395">
79+
<reference key="IBUINavigationBar" ref="4252644"/>
80+
<string key="IBUITitle">StackPanel</string>
81+
<object class="IBUIBarButtonItem" key="IBUIRightBarButtonItem" id="228937261">
82+
<string key="IBUITitle">Delete Top Item</string>
83+
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
84+
<int key="IBUIStyle">1</int>
85+
<reference key="IBUINavigationItem" ref="479537395"/>
86+
</object>
87+
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
88+
</object>
89+
</object>
90+
</object>
6591
</object>
6692
<object class="NSPSMatrix" key="NSFrameMatrix"/>
6793
<string key="NSFrameSize">{320, 480}</string>
6894
<reference key="NSSuperview"/>
6995
<reference key="NSWindow"/>
70-
<reference key="NSNextKeyView" ref="382502804"/>
96+
<reference key="NSNextKeyView" ref="4252644"/>
7197
<object class="NSColor" key="IBUIBackgroundColor">
7298
<int key="NSColorSpace">1</int>
7399
<bytes key="NSRGB">MSAxIDEAA</bytes>
@@ -106,6 +132,14 @@
106132
</object>
107133
<int key="connectionID">12</int>
108134
</object>
135+
<object class="IBConnectionRecord">
136+
<object class="IBCocoaTouchEventConnection" key="connection">
137+
<string key="label">deleteTopItem:</string>
138+
<reference key="source" ref="228937261"/>
139+
<reference key="destination" ref="664661524"/>
140+
</object>
141+
<int key="connectionID">16</int>
142+
</object>
109143
</object>
110144
<object class="IBMutableOrderedSet" key="objectRecords">
111145
<object class="NSArray" key="orderedObjects">
@@ -122,6 +156,7 @@
122156
<object class="NSMutableArray" key="children">
123157
<bool key="EncodedWithXMLCoder">YES</bool>
124158
<reference ref="382502804"/>
159+
<reference ref="4252644"/>
125160
</object>
126161
<reference key="parent" ref="0"/>
127162
</object>
@@ -146,6 +181,29 @@
146181
<reference key="object" ref="382502804"/>
147182
<reference key="parent" ref="380026005"/>
148183
</object>
184+
<object class="IBObjectRecord">
185+
<int key="objectID">13</int>
186+
<reference key="object" ref="4252644"/>
187+
<object class="NSMutableArray" key="children">
188+
<bool key="EncodedWithXMLCoder">YES</bool>
189+
<reference ref="479537395"/>
190+
</object>
191+
<reference key="parent" ref="380026005"/>
192+
</object>
193+
<object class="IBObjectRecord">
194+
<int key="objectID">14</int>
195+
<reference key="object" ref="479537395"/>
196+
<object class="NSMutableArray" key="children">
197+
<bool key="EncodedWithXMLCoder">YES</bool>
198+
<reference ref="228937261"/>
199+
</object>
200+
<reference key="parent" ref="4252644"/>
201+
</object>
202+
<object class="IBObjectRecord">
203+
<int key="objectID">15</int>
204+
<reference key="object" ref="228937261"/>
205+
<reference key="parent" ref="479537395"/>
206+
</object>
149207
</object>
150208
</object>
151209
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -156,6 +214,9 @@
156214
<string>-2.CustomClassName</string>
157215
<string>10.CustomClassName</string>
158216
<string>10.IBPluginDependency</string>
217+
<string>13.IBPluginDependency</string>
218+
<string>14.IBPluginDependency</string>
219+
<string>15.IBPluginDependency</string>
159220
<string>2.IBAttributePlaceholdersKey</string>
160221
<string>2.IBEditorWindowLastContentRect</string>
161222
<string>2.IBPluginDependency</string>
@@ -168,6 +229,9 @@
168229
<string>UIResponder</string>
169230
<string>StackPanel</string>
170231
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
232+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
233+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
234+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
171235
<object class="NSMutableDictionary">
172236
<bool key="EncodedWithXMLCoder">YES</bool>
173237
<reference key="dict.sortedKeys" ref="0"/>
@@ -191,7 +255,7 @@
191255
<reference key="dict.values" ref="0"/>
192256
</object>
193257
<nil key="sourceID"/>
194-
<int key="maxID">12</int>
258+
<int key="maxID">16</int>
195259
</object>
196260
<object class="IBClassDescriber" key="IBDocument.Classes">
197261
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -207,6 +271,17 @@
207271
<object class="IBPartialClassDescription">
208272
<string key="className">StackPanelAppDelegate</string>
209273
<string key="superclassName">NSObject</string>
274+
<object class="NSMutableDictionary" key="actions">
275+
<string key="NS.key.0">deleteTopItem:</string>
276+
<string key="NS.object.0">id</string>
277+
</object>
278+
<object class="NSMutableDictionary" key="actionInfosByName">
279+
<string key="NS.key.0">deleteTopItem:</string>
280+
<object class="IBActionInfo" key="NS.object.0">
281+
<string key="name">deleteTopItem:</string>
282+
<string key="candidateClassName">id</string>
283+
</object>
284+
</object>
210285
<object class="NSMutableDictionary" key="outlets">
211286
<bool key="EncodedWithXMLCoder">YES</bool>
212287
<object class="NSArray" key="dict.sortedKeys">

0 commit comments

Comments
 (0)