├── README.md
├── iMultiExpandCollapse
├── Assets.xcassets
│ ├── Contents.json
│ ├── up-arrow.imageset
│ │ ├── up-arrow@2x.png
│ │ ├── up-arrow@3x.png
│ │ └── Contents.json
│ ├── down-arrow.imageset
│ │ ├── down-arrow@2x.png
│ │ ├── down-arrow@3x.png
│ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── AppDelegate.h
├── main.m
├── ViewController.h
├── Info.plist
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── AppDelegate.m
├── ViewController.m
└── iMultiData.plist
├── iMultiExpandCollapse.xcodeproj
├── xcuserdata
│ └── homebethe.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── project.xcworkspace
│ └── contents.xcworkspacedata
└── project.pbxproj
├── iMultiExpandCollapseTests
├── Info.plist
└── iMultiExpandCollapseTests.m
└── iMultiExpandCollapseUITests
├── Info.plist
└── iMultiExpandCollapseUITests.m
/README.md:
--------------------------------------------------------------------------------
1 | # iMultiExpandCollapse
2 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/up-arrow.imageset/up-arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IshuRocks/iMultiExpandCollapse/HEAD/iMultiExpandCollapse/Assets.xcassets/up-arrow.imageset/up-arrow@2x.png
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/up-arrow.imageset/up-arrow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IshuRocks/iMultiExpandCollapse/HEAD/iMultiExpandCollapse/Assets.xcassets/up-arrow.imageset/up-arrow@3x.png
--------------------------------------------------------------------------------
/iMultiExpandCollapse.xcodeproj/xcuserdata/homebethe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/down-arrow.imageset/down-arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IshuRocks/iMultiExpandCollapse/HEAD/iMultiExpandCollapse/Assets.xcassets/down-arrow.imageset/down-arrow@2x.png
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/down-arrow.imageset/down-arrow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IshuRocks/iMultiExpandCollapse/HEAD/iMultiExpandCollapse/Assets.xcassets/down-arrow.imageset/down-arrow@3x.png
--------------------------------------------------------------------------------
/iMultiExpandCollapse.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // iMultiExpandCollapse
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iMultiExpandCollapse
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse.xcodeproj/xcuserdata/homebethe.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | iMultiExpandCollapse.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/up-arrow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "up-arrow@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "up-arrow@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/down-arrow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "down-arrow@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "down-arrow@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/iMultiExpandCollapse/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // iMultiExpandCollapse
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 | {
13 | NSArray *mainArray,* removeArray;
14 | NSMutableArray *menuItemsArray,* selectArray;
15 | NSIndexPath *selectedIndexPath;
16 | }
17 |
18 | @property (weak, nonatomic) IBOutlet UITableView *tbl_list;
19 |
20 | @end
21 |
22 |
--------------------------------------------------------------------------------
/iMultiExpandCollapseTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/iMultiExpandCollapseUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/iMultiExpandCollapseTests/iMultiExpandCollapseTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // iMultiExpandCollapseTests.m
3 | // iMultiExpandCollapseTests
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iMultiExpandCollapseTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation iMultiExpandCollapseTests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 | // Put setup code here. This method is called before the invocation of each test method in the class.
20 | }
21 |
22 | - (void)tearDown {
23 | // Put teardown code here. This method is called after the invocation of each test method in the class.
24 | [super tearDown];
25 | }
26 |
27 | - (void)testExample {
28 | // This is an example of a functional test case.
29 | // Use XCTAssert and related functions to verify your tests produce the correct results.
30 | }
31 |
32 | - (void)testPerformanceExample {
33 | // This is an example of a performance test case.
34 | [self measureBlock:^{
35 | // Put the code you want to measure the time of here.
36 | }];
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/iMultiExpandCollapseUITests/iMultiExpandCollapseUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // iMultiExpandCollapseUITests.m
3 | // iMultiExpandCollapseUITests
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iMultiExpandCollapseUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation iMultiExpandCollapseUITests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 |
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 |
22 | // In UI tests it is usually best to stop immediately when a failure occurs.
23 | self.continueAfterFailure = NO;
24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
25 | [[[XCUIApplication alloc] init] launch];
26 |
27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
28 | }
29 |
30 | - (void)tearDown {
31 | // Put teardown code here. This method is called after the invocation of each test method in the class.
32 | [super tearDown];
33 | }
34 |
35 | - (void)testExample {
36 | // Use recording to get started writing UI tests.
37 | // Use XCTAssert and related functions to verify your tests produce the correct results.
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/iMultiExpandCollapse/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // iMultiExpandCollapse
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @interface AppDelegate ()
12 |
13 | @end
14 |
15 | @implementation AppDelegate
16 |
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19 | // Override point for customization after application launch.
20 | return YES;
21 | }
22 |
23 |
24 | - (void)applicationWillResignActive:(UIApplication *)application {
25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
27 | }
28 |
29 |
30 | - (void)applicationDidEnterBackground:(UIApplication *)application {
31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
33 | }
34 |
35 |
36 | - (void)applicationWillEnterForeground:(UIApplication *)application {
37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
38 | }
39 |
40 |
41 | - (void)applicationDidBecomeActive:(UIApplication *)application {
42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
43 | }
44 |
45 |
46 | - (void)applicationWillTerminate:(UIApplication *)application {
47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
48 | }
49 |
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // iMultiExpandCollapse
4 | //
5 | // Created by homebethe e-commerce private limited on 10/15/17.
6 | // Copyright © 2017 homebethe e-commerce private limited. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 |
11 | @interface ViewController ()
12 |
13 | @end
14 |
15 | NSString *const keyIndent = @"level";
16 | NSString *const keyChildren = @"Objects";
17 |
18 | @implementation ViewController
19 |
20 | - (void)viewDidLoad {
21 | [super viewDidLoad];
22 | // Do any additional setup after loading the view, typically from a nib.
23 |
24 | NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"iMultiData" ofType:@"plist"]];
25 | mainArray = [plistDict valueForKey:@"Objects"];
26 |
27 | menuItemsArray = [[NSMutableArray alloc] init];
28 | selectArray = [[NSMutableArray alloc] init];
29 | [menuItemsArray addObjectsFromArray:mainArray];
30 |
31 | _tbl_list.delegate = self;
32 | _tbl_list.dataSource = self;
33 |
34 | _tbl_list.tableFooterView = [UIView new];
35 |
36 | [_tbl_list reloadData];
37 | }
38 |
39 |
40 | - (void)didReceiveMemoryWarning {
41 | [super didReceiveMemoryWarning];
42 | // Dispose of any resources that can be recreated.
43 | }
44 | #pragma mark TableView DataSource and Delegate Methods
45 |
46 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
47 | {
48 | return 1;
49 | }
50 |
51 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
52 | {
53 | return menuItemsArray.count;
54 | }
55 |
56 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
57 | {
58 |
59 | NSString * cellIdentifier = @"cellIdentifier";
60 |
61 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
62 |
63 | if (cell == nil)
64 | {
65 |
66 | cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
67 |
68 | }
69 |
70 | for (UIView *view in cell.contentView.subviews)
71 | {
72 | [view removeFromSuperview];
73 | }
74 |
75 | NSDictionary *dic = menuItemsArray[indexPath.row];
76 |
77 | if ([selectArray containsObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]])
78 | {
79 | [self acccesory:cell :@"up-arrow"];
80 | }
81 | else
82 | {
83 | if ([dic[keyChildren] count])
84 | {
85 | [self acccesory:cell :@"down-arrow"];
86 | }
87 | else
88 | {
89 | cell.accessoryView = nil;
90 | }
91 | }
92 |
93 | cell.textLabel.font = [UIFont systemFontOfSize:17];
94 | cell.textLabel.textColor = [UIColor blackColor];
95 |
96 | cell.selectionStyle = UITableViewCellSelectionStyleBlue;
97 |
98 | NSString * headername =[[menuItemsArray valueForKey:@"name"] objectAtIndex:indexPath.row];
99 | headername = [headername stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
100 |
101 | cell.textLabel.text = headername;
102 |
103 | cell.indentationWidth = 20;
104 | cell.indentationLevel =[menuItemsArray[indexPath.row][keyIndent] integerValue];;
105 |
106 | cell.contentView.superview.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:(CGFloat)(cell.indentationLevel)/25.0];
107 |
108 | cell.textLabel.backgroundColor = [UIColor clearColor];
109 |
110 | UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 34,self.view.frame.size.width,0.5)];
111 | view.backgroundColor = [UIColor colorWithRed:208.0f/255.0f green:208.0f/255.0f blue:208.0f/255.0f alpha:0.4f];
112 | [cell.contentView addSubview:view];
113 |
114 | return cell;
115 | }
116 |
117 | #pragma mark - Table View Delegate
118 |
119 | -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
120 | {
121 | NSDictionary *dic = menuItemsArray[indexPath.row];
122 |
123 | NSArray *ar=[dic valueForKey:keyChildren];
124 |
125 | NSInteger indentLevel = [menuItemsArray[indexPath.row][keyIndent] integerValue]; //indentLevel of the selected cell
126 |
127 | BOOL isChildrenAlreadyInserted = [menuItemsArray containsObject:dic[keyChildren]]; //checking contains children
128 |
129 | for(NSDictionary *dicChildren in dic[keyChildren])
130 | {
131 | NSInteger indexe=[menuItemsArray indexOfObjectIdenticalTo:dicChildren];
132 |
133 | isChildrenAlreadyInserted=(indexe>0 && indexe!=NSIntegerMax); //checking contains children
134 |
135 | if(isChildrenAlreadyInserted) break;
136 |
137 | }
138 |
139 | NSString * T = [[menuItemsArray objectAtIndex:indexPath.row] valueForKey:@"name"];
140 |
141 | if(isChildrenAlreadyInserted)
142 | {
143 | [self miniMizeThisRows:ar];
144 |
145 | if(indentLevel ==0)
146 | {
147 | [selectArray removeAllObjects];
148 | }
149 |
150 | [selectArray removeObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
151 |
152 | [self performSelector:@selector(tblReload) withObject:indexPath afterDelay:0.20];
153 |
154 | }
155 | else if([dic[keyChildren] count])
156 | {
157 | NSUInteger count=indexPath.row+1;
158 |
159 | if(removeArray.count && indentLevel ==0)
160 | {
161 | [self miniMizeThisRows:removeArray];
162 |
163 | [selectArray removeAllObjects];
164 |
165 | for (int i=0; i< menuItemsArray.count; i++)
166 | {
167 | NSString * T1 = [[menuItemsArray objectAtIndex:i] valueForKey:@"name"];
168 |
169 | if([T1 isEqualToString:T])
170 | {
171 | count = i+1;
172 | }
173 | }
174 |
175 | [selectArray addObject:[NSString stringWithFormat:@"%ld",(long)count-1]];
176 | }
177 | else
178 | {
179 | [selectArray addObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
180 | }
181 |
182 | NSMutableArray *arCells=[NSMutableArray array];
183 | for(NSDictionary *dInner in ar )
184 | {
185 | [arCells addObject:[NSIndexPath indexPathForRow:count inSection:0]];
186 | [menuItemsArray insertObject:dInner atIndex:count++];
187 | }
188 |
189 | if(indentLevel == 0)
190 | {
191 | removeArray = ar;
192 | }
193 |
194 | if(selectedIndexPath == nil)
195 | {
196 | selectedIndexPath = indexPath;
197 | }
198 |
199 | [self.tbl_list insertRowsAtIndexPaths:arCells withRowAnimation:UITableViewRowAnimationTop];
200 |
201 | [self performSelector:@selector(tblReload) withObject:indexPath afterDelay:0.20];
202 |
203 | }
204 | else
205 | {
206 |
207 | // Navigation to other View
208 |
209 | }
210 |
211 | }
212 |
213 | -(void)tblReload
214 | {
215 | [self.tbl_list reloadData];
216 | }
217 |
218 | -(void)miniMizeThisRows:(NSArray*)ar
219 | {
220 |
221 | for(NSDictionary *dInner in ar )
222 | {
223 | NSUInteger indexToRemove=[menuItemsArray indexOfObjectIdenticalTo:dInner];
224 |
225 | NSArray *arInner=[dInner valueForKey:keyChildren];
226 | if(arInner && [arInner count]>0){
227 | [self miniMizeThisRows:arInner];
228 | }
229 |
230 | if([menuItemsArray indexOfObjectIdenticalTo:dInner]!=NSNotFound)
231 | {
232 | [menuItemsArray removeObjectIdenticalTo:dInner];
233 |
234 |
235 | [self.tbl_list deleteRowsAtIndexPaths:[NSArray arrayWithObject:
236 | [NSIndexPath indexPathForRow:indexToRemove inSection:0]]withRowAnimation:UITableViewRowAnimationRight];
237 | }
238 | }
239 | }
240 |
241 | -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
242 | {
243 | return 35;
244 | }
245 |
246 | -(void)acccesory :(UITableViewCell *)cell :(NSString*)img
247 | {
248 | UIEdgeInsets insets = UIEdgeInsetsMake(24, 0, 0, 0);
249 | // Create custom accessory view, in this case an image view
250 | UIImage *customImage = [UIImage imageNamed:img];
251 | UIImageView *accessoryView = [[UIImageView alloc] initWithImage:customImage];
252 |
253 | // Create wrapper view with size that takes the insets into account
254 | UIView *accessoryWrapperView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, customImage.size.width+insets.left+insets.right, customImage.size.height+insets.top+insets.bottom)];
255 | [accessoryWrapperView setBackgroundColor:[UIColor clearColor]];
256 |
257 | // Add custom accessory view into wrapper view
258 | [accessoryWrapperView addSubview:accessoryView];
259 |
260 | // Use inset's left and top values to position the custom accessory view inside the wrapper view
261 | accessoryView.frame = CGRectMake(insets.left+12, insets.top-5, customImage.size.width-10, customImage.size.height-10);
262 |
263 | // Set accessory view of cell (in this case this code is called from within the cell)
264 | cell.accessoryView = accessoryWrapperView;
265 | }
266 |
267 |
268 | @end
269 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 48;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 14977B9F1F93270D0098B199 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14977B9E1F93270D0098B199 /* AppDelegate.m */; };
11 | 14977BA21F93270D0098B199 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14977BA11F93270D0098B199 /* ViewController.m */; };
12 | 14977BA51F93270D0098B199 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14977BA31F93270D0098B199 /* Main.storyboard */; };
13 | 14977BA71F93270D0098B199 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14977BA61F93270D0098B199 /* Assets.xcassets */; };
14 | 14977BAA1F93270D0098B199 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14977BA81F93270D0098B199 /* LaunchScreen.storyboard */; };
15 | 14977BAD1F93270D0098B199 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14977BAC1F93270D0098B199 /* main.m */; };
16 | 14977BB71F93270D0098B199 /* iMultiExpandCollapseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14977BB61F93270D0098B199 /* iMultiExpandCollapseTests.m */; };
17 | 14977BC21F93270D0098B199 /* iMultiExpandCollapseUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14977BC11F93270D0098B199 /* iMultiExpandCollapseUITests.m */; };
18 | 14977BD11F932C430098B199 /* iMultiData.plist in Resources */ = {isa = PBXBuildFile; fileRef = 14977BD01F932C430098B199 /* iMultiData.plist */; };
19 | /* End PBXBuildFile section */
20 |
21 | /* Begin PBXContainerItemProxy section */
22 | 14977BB31F93270D0098B199 /* PBXContainerItemProxy */ = {
23 | isa = PBXContainerItemProxy;
24 | containerPortal = 14977B921F93270D0098B199 /* Project object */;
25 | proxyType = 1;
26 | remoteGlobalIDString = 14977B991F93270D0098B199;
27 | remoteInfo = iMultiExpandCollapse;
28 | };
29 | 14977BBE1F93270D0098B199 /* PBXContainerItemProxy */ = {
30 | isa = PBXContainerItemProxy;
31 | containerPortal = 14977B921F93270D0098B199 /* Project object */;
32 | proxyType = 1;
33 | remoteGlobalIDString = 14977B991F93270D0098B199;
34 | remoteInfo = iMultiExpandCollapse;
35 | };
36 | /* End PBXContainerItemProxy section */
37 |
38 | /* Begin PBXFileReference section */
39 | 14977B9A1F93270D0098B199 /* iMultiExpandCollapse.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iMultiExpandCollapse.app; sourceTree = BUILT_PRODUCTS_DIR; };
40 | 14977B9D1F93270D0098B199 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
41 | 14977B9E1F93270D0098B199 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
42 | 14977BA01F93270D0098B199 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
43 | 14977BA11F93270D0098B199 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
44 | 14977BA41F93270D0098B199 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
45 | 14977BA61F93270D0098B199 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
46 | 14977BA91F93270D0098B199 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
47 | 14977BAB1F93270D0098B199 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
48 | 14977BAC1F93270D0098B199 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
49 | 14977BB21F93270D0098B199 /* iMultiExpandCollapseTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iMultiExpandCollapseTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
50 | 14977BB61F93270D0098B199 /* iMultiExpandCollapseTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iMultiExpandCollapseTests.m; sourceTree = ""; };
51 | 14977BB81F93270D0098B199 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
52 | 14977BBD1F93270D0098B199 /* iMultiExpandCollapseUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iMultiExpandCollapseUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
53 | 14977BC11F93270D0098B199 /* iMultiExpandCollapseUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iMultiExpandCollapseUITests.m; sourceTree = ""; };
54 | 14977BC31F93270D0098B199 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
55 | 14977BD01F932C430098B199 /* iMultiData.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = iMultiData.plist; sourceTree = ""; };
56 | /* End PBXFileReference section */
57 |
58 | /* Begin PBXFrameworksBuildPhase section */
59 | 14977B971F93270D0098B199 /* Frameworks */ = {
60 | isa = PBXFrameworksBuildPhase;
61 | buildActionMask = 2147483647;
62 | files = (
63 | );
64 | runOnlyForDeploymentPostprocessing = 0;
65 | };
66 | 14977BAF1F93270D0098B199 /* Frameworks */ = {
67 | isa = PBXFrameworksBuildPhase;
68 | buildActionMask = 2147483647;
69 | files = (
70 | );
71 | runOnlyForDeploymentPostprocessing = 0;
72 | };
73 | 14977BBA1F93270D0098B199 /* Frameworks */ = {
74 | isa = PBXFrameworksBuildPhase;
75 | buildActionMask = 2147483647;
76 | files = (
77 | );
78 | runOnlyForDeploymentPostprocessing = 0;
79 | };
80 | /* End PBXFrameworksBuildPhase section */
81 |
82 | /* Begin PBXGroup section */
83 | 14977B911F93270D0098B199 = {
84 | isa = PBXGroup;
85 | children = (
86 | 14977B9C1F93270D0098B199 /* iMultiExpandCollapse */,
87 | 14977BB51F93270D0098B199 /* iMultiExpandCollapseTests */,
88 | 14977BC01F93270D0098B199 /* iMultiExpandCollapseUITests */,
89 | 14977B9B1F93270D0098B199 /* Products */,
90 | );
91 | sourceTree = "";
92 | };
93 | 14977B9B1F93270D0098B199 /* Products */ = {
94 | isa = PBXGroup;
95 | children = (
96 | 14977B9A1F93270D0098B199 /* iMultiExpandCollapse.app */,
97 | 14977BB21F93270D0098B199 /* iMultiExpandCollapseTests.xctest */,
98 | 14977BBD1F93270D0098B199 /* iMultiExpandCollapseUITests.xctest */,
99 | );
100 | name = Products;
101 | sourceTree = "";
102 | };
103 | 14977B9C1F93270D0098B199 /* iMultiExpandCollapse */ = {
104 | isa = PBXGroup;
105 | children = (
106 | 14977BD01F932C430098B199 /* iMultiData.plist */,
107 | 14977B9D1F93270D0098B199 /* AppDelegate.h */,
108 | 14977B9E1F93270D0098B199 /* AppDelegate.m */,
109 | 14977BA01F93270D0098B199 /* ViewController.h */,
110 | 14977BA11F93270D0098B199 /* ViewController.m */,
111 | 14977BA31F93270D0098B199 /* Main.storyboard */,
112 | 14977BA61F93270D0098B199 /* Assets.xcassets */,
113 | 14977BA81F93270D0098B199 /* LaunchScreen.storyboard */,
114 | 14977BAB1F93270D0098B199 /* Info.plist */,
115 | 14977BAC1F93270D0098B199 /* main.m */,
116 | );
117 | path = iMultiExpandCollapse;
118 | sourceTree = "";
119 | };
120 | 14977BB51F93270D0098B199 /* iMultiExpandCollapseTests */ = {
121 | isa = PBXGroup;
122 | children = (
123 | 14977BB61F93270D0098B199 /* iMultiExpandCollapseTests.m */,
124 | 14977BB81F93270D0098B199 /* Info.plist */,
125 | );
126 | path = iMultiExpandCollapseTests;
127 | sourceTree = "";
128 | };
129 | 14977BC01F93270D0098B199 /* iMultiExpandCollapseUITests */ = {
130 | isa = PBXGroup;
131 | children = (
132 | 14977BC11F93270D0098B199 /* iMultiExpandCollapseUITests.m */,
133 | 14977BC31F93270D0098B199 /* Info.plist */,
134 | );
135 | path = iMultiExpandCollapseUITests;
136 | sourceTree = "";
137 | };
138 | /* End PBXGroup section */
139 |
140 | /* Begin PBXNativeTarget section */
141 | 14977B991F93270D0098B199 /* iMultiExpandCollapse */ = {
142 | isa = PBXNativeTarget;
143 | buildConfigurationList = 14977BC61F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapse" */;
144 | buildPhases = (
145 | 14977B961F93270D0098B199 /* Sources */,
146 | 14977B971F93270D0098B199 /* Frameworks */,
147 | 14977B981F93270D0098B199 /* Resources */,
148 | );
149 | buildRules = (
150 | );
151 | dependencies = (
152 | );
153 | name = iMultiExpandCollapse;
154 | productName = iMultiExpandCollapse;
155 | productReference = 14977B9A1F93270D0098B199 /* iMultiExpandCollapse.app */;
156 | productType = "com.apple.product-type.application";
157 | };
158 | 14977BB11F93270D0098B199 /* iMultiExpandCollapseTests */ = {
159 | isa = PBXNativeTarget;
160 | buildConfigurationList = 14977BC91F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapseTests" */;
161 | buildPhases = (
162 | 14977BAE1F93270D0098B199 /* Sources */,
163 | 14977BAF1F93270D0098B199 /* Frameworks */,
164 | 14977BB01F93270D0098B199 /* Resources */,
165 | );
166 | buildRules = (
167 | );
168 | dependencies = (
169 | 14977BB41F93270D0098B199 /* PBXTargetDependency */,
170 | );
171 | name = iMultiExpandCollapseTests;
172 | productName = iMultiExpandCollapseTests;
173 | productReference = 14977BB21F93270D0098B199 /* iMultiExpandCollapseTests.xctest */;
174 | productType = "com.apple.product-type.bundle.unit-test";
175 | };
176 | 14977BBC1F93270D0098B199 /* iMultiExpandCollapseUITests */ = {
177 | isa = PBXNativeTarget;
178 | buildConfigurationList = 14977BCC1F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapseUITests" */;
179 | buildPhases = (
180 | 14977BB91F93270D0098B199 /* Sources */,
181 | 14977BBA1F93270D0098B199 /* Frameworks */,
182 | 14977BBB1F93270D0098B199 /* Resources */,
183 | );
184 | buildRules = (
185 | );
186 | dependencies = (
187 | 14977BBF1F93270D0098B199 /* PBXTargetDependency */,
188 | );
189 | name = iMultiExpandCollapseUITests;
190 | productName = iMultiExpandCollapseUITests;
191 | productReference = 14977BBD1F93270D0098B199 /* iMultiExpandCollapseUITests.xctest */;
192 | productType = "com.apple.product-type.bundle.ui-testing";
193 | };
194 | /* End PBXNativeTarget section */
195 |
196 | /* Begin PBXProject section */
197 | 14977B921F93270D0098B199 /* Project object */ = {
198 | isa = PBXProject;
199 | attributes = {
200 | LastUpgradeCheck = 0900;
201 | ORGANIZATIONNAME = "homebethe e-commerce private limited";
202 | TargetAttributes = {
203 | 14977B991F93270D0098B199 = {
204 | CreatedOnToolsVersion = 9.0;
205 | ProvisioningStyle = Automatic;
206 | };
207 | 14977BB11F93270D0098B199 = {
208 | CreatedOnToolsVersion = 9.0;
209 | ProvisioningStyle = Automatic;
210 | TestTargetID = 14977B991F93270D0098B199;
211 | };
212 | 14977BBC1F93270D0098B199 = {
213 | CreatedOnToolsVersion = 9.0;
214 | ProvisioningStyle = Automatic;
215 | TestTargetID = 14977B991F93270D0098B199;
216 | };
217 | };
218 | };
219 | buildConfigurationList = 14977B951F93270D0098B199 /* Build configuration list for PBXProject "iMultiExpandCollapse" */;
220 | compatibilityVersion = "Xcode 8.0";
221 | developmentRegion = en;
222 | hasScannedForEncodings = 0;
223 | knownRegions = (
224 | en,
225 | Base,
226 | );
227 | mainGroup = 14977B911F93270D0098B199;
228 | productRefGroup = 14977B9B1F93270D0098B199 /* Products */;
229 | projectDirPath = "";
230 | projectRoot = "";
231 | targets = (
232 | 14977B991F93270D0098B199 /* iMultiExpandCollapse */,
233 | 14977BB11F93270D0098B199 /* iMultiExpandCollapseTests */,
234 | 14977BBC1F93270D0098B199 /* iMultiExpandCollapseUITests */,
235 | );
236 | };
237 | /* End PBXProject section */
238 |
239 | /* Begin PBXResourcesBuildPhase section */
240 | 14977B981F93270D0098B199 /* Resources */ = {
241 | isa = PBXResourcesBuildPhase;
242 | buildActionMask = 2147483647;
243 | files = (
244 | 14977BAA1F93270D0098B199 /* LaunchScreen.storyboard in Resources */,
245 | 14977BA71F93270D0098B199 /* Assets.xcassets in Resources */,
246 | 14977BD11F932C430098B199 /* iMultiData.plist in Resources */,
247 | 14977BA51F93270D0098B199 /* Main.storyboard in Resources */,
248 | );
249 | runOnlyForDeploymentPostprocessing = 0;
250 | };
251 | 14977BB01F93270D0098B199 /* Resources */ = {
252 | isa = PBXResourcesBuildPhase;
253 | buildActionMask = 2147483647;
254 | files = (
255 | );
256 | runOnlyForDeploymentPostprocessing = 0;
257 | };
258 | 14977BBB1F93270D0098B199 /* Resources */ = {
259 | isa = PBXResourcesBuildPhase;
260 | buildActionMask = 2147483647;
261 | files = (
262 | );
263 | runOnlyForDeploymentPostprocessing = 0;
264 | };
265 | /* End PBXResourcesBuildPhase section */
266 |
267 | /* Begin PBXSourcesBuildPhase section */
268 | 14977B961F93270D0098B199 /* Sources */ = {
269 | isa = PBXSourcesBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | 14977BA21F93270D0098B199 /* ViewController.m in Sources */,
273 | 14977BAD1F93270D0098B199 /* main.m in Sources */,
274 | 14977B9F1F93270D0098B199 /* AppDelegate.m in Sources */,
275 | );
276 | runOnlyForDeploymentPostprocessing = 0;
277 | };
278 | 14977BAE1F93270D0098B199 /* Sources */ = {
279 | isa = PBXSourcesBuildPhase;
280 | buildActionMask = 2147483647;
281 | files = (
282 | 14977BB71F93270D0098B199 /* iMultiExpandCollapseTests.m in Sources */,
283 | );
284 | runOnlyForDeploymentPostprocessing = 0;
285 | };
286 | 14977BB91F93270D0098B199 /* Sources */ = {
287 | isa = PBXSourcesBuildPhase;
288 | buildActionMask = 2147483647;
289 | files = (
290 | 14977BC21F93270D0098B199 /* iMultiExpandCollapseUITests.m in Sources */,
291 | );
292 | runOnlyForDeploymentPostprocessing = 0;
293 | };
294 | /* End PBXSourcesBuildPhase section */
295 |
296 | /* Begin PBXTargetDependency section */
297 | 14977BB41F93270D0098B199 /* PBXTargetDependency */ = {
298 | isa = PBXTargetDependency;
299 | target = 14977B991F93270D0098B199 /* iMultiExpandCollapse */;
300 | targetProxy = 14977BB31F93270D0098B199 /* PBXContainerItemProxy */;
301 | };
302 | 14977BBF1F93270D0098B199 /* PBXTargetDependency */ = {
303 | isa = PBXTargetDependency;
304 | target = 14977B991F93270D0098B199 /* iMultiExpandCollapse */;
305 | targetProxy = 14977BBE1F93270D0098B199 /* PBXContainerItemProxy */;
306 | };
307 | /* End PBXTargetDependency section */
308 |
309 | /* Begin PBXVariantGroup section */
310 | 14977BA31F93270D0098B199 /* Main.storyboard */ = {
311 | isa = PBXVariantGroup;
312 | children = (
313 | 14977BA41F93270D0098B199 /* Base */,
314 | );
315 | name = Main.storyboard;
316 | sourceTree = "";
317 | };
318 | 14977BA81F93270D0098B199 /* LaunchScreen.storyboard */ = {
319 | isa = PBXVariantGroup;
320 | children = (
321 | 14977BA91F93270D0098B199 /* Base */,
322 | );
323 | name = LaunchScreen.storyboard;
324 | sourceTree = "";
325 | };
326 | /* End PBXVariantGroup section */
327 |
328 | /* Begin XCBuildConfiguration section */
329 | 14977BC41F93270D0098B199 /* Debug */ = {
330 | isa = XCBuildConfiguration;
331 | buildSettings = {
332 | ALWAYS_SEARCH_USER_PATHS = NO;
333 | CLANG_ANALYZER_NONNULL = YES;
334 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
335 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
336 | CLANG_CXX_LIBRARY = "libc++";
337 | CLANG_ENABLE_MODULES = YES;
338 | CLANG_ENABLE_OBJC_ARC = YES;
339 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
340 | CLANG_WARN_BOOL_CONVERSION = YES;
341 | CLANG_WARN_COMMA = YES;
342 | CLANG_WARN_CONSTANT_CONVERSION = YES;
343 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
344 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
345 | CLANG_WARN_EMPTY_BODY = YES;
346 | CLANG_WARN_ENUM_CONVERSION = YES;
347 | CLANG_WARN_INFINITE_RECURSION = YES;
348 | CLANG_WARN_INT_CONVERSION = YES;
349 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
350 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
351 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
352 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
353 | CLANG_WARN_STRICT_PROTOTYPES = YES;
354 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
355 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
356 | CLANG_WARN_UNREACHABLE_CODE = YES;
357 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
358 | CODE_SIGN_IDENTITY = "iPhone Developer";
359 | COPY_PHASE_STRIP = NO;
360 | DEBUG_INFORMATION_FORMAT = dwarf;
361 | ENABLE_STRICT_OBJC_MSGSEND = YES;
362 | ENABLE_TESTABILITY = YES;
363 | GCC_C_LANGUAGE_STANDARD = gnu11;
364 | GCC_DYNAMIC_NO_PIC = NO;
365 | GCC_NO_COMMON_BLOCKS = YES;
366 | GCC_OPTIMIZATION_LEVEL = 0;
367 | GCC_PREPROCESSOR_DEFINITIONS = (
368 | "DEBUG=1",
369 | "$(inherited)",
370 | );
371 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
372 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
373 | GCC_WARN_UNDECLARED_SELECTOR = YES;
374 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
375 | GCC_WARN_UNUSED_FUNCTION = YES;
376 | GCC_WARN_UNUSED_VARIABLE = YES;
377 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
378 | MTL_ENABLE_DEBUG_INFO = YES;
379 | ONLY_ACTIVE_ARCH = YES;
380 | SDKROOT = iphoneos;
381 | };
382 | name = Debug;
383 | };
384 | 14977BC51F93270D0098B199 /* Release */ = {
385 | isa = XCBuildConfiguration;
386 | buildSettings = {
387 | ALWAYS_SEARCH_USER_PATHS = NO;
388 | CLANG_ANALYZER_NONNULL = YES;
389 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
390 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
391 | CLANG_CXX_LIBRARY = "libc++";
392 | CLANG_ENABLE_MODULES = YES;
393 | CLANG_ENABLE_OBJC_ARC = YES;
394 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
395 | CLANG_WARN_BOOL_CONVERSION = YES;
396 | CLANG_WARN_COMMA = YES;
397 | CLANG_WARN_CONSTANT_CONVERSION = YES;
398 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
399 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
400 | CLANG_WARN_EMPTY_BODY = YES;
401 | CLANG_WARN_ENUM_CONVERSION = YES;
402 | CLANG_WARN_INFINITE_RECURSION = YES;
403 | CLANG_WARN_INT_CONVERSION = YES;
404 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
405 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
406 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
407 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
408 | CLANG_WARN_STRICT_PROTOTYPES = YES;
409 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
410 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
411 | CLANG_WARN_UNREACHABLE_CODE = YES;
412 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
413 | CODE_SIGN_IDENTITY = "iPhone Developer";
414 | COPY_PHASE_STRIP = NO;
415 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
416 | ENABLE_NS_ASSERTIONS = NO;
417 | ENABLE_STRICT_OBJC_MSGSEND = YES;
418 | GCC_C_LANGUAGE_STANDARD = gnu11;
419 | GCC_NO_COMMON_BLOCKS = YES;
420 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
421 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
422 | GCC_WARN_UNDECLARED_SELECTOR = YES;
423 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
424 | GCC_WARN_UNUSED_FUNCTION = YES;
425 | GCC_WARN_UNUSED_VARIABLE = YES;
426 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
427 | MTL_ENABLE_DEBUG_INFO = NO;
428 | SDKROOT = iphoneos;
429 | VALIDATE_PRODUCT = YES;
430 | };
431 | name = Release;
432 | };
433 | 14977BC71F93270D0098B199 /* Debug */ = {
434 | isa = XCBuildConfiguration;
435 | buildSettings = {
436 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
437 | CODE_SIGN_STYLE = Automatic;
438 | DEVELOPMENT_TEAM = "";
439 | INFOPLIST_FILE = iMultiExpandCollapse/Info.plist;
440 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
441 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapse;
442 | PRODUCT_NAME = "$(TARGET_NAME)";
443 | TARGETED_DEVICE_FAMILY = "1,2";
444 | };
445 | name = Debug;
446 | };
447 | 14977BC81F93270D0098B199 /* Release */ = {
448 | isa = XCBuildConfiguration;
449 | buildSettings = {
450 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
451 | CODE_SIGN_STYLE = Automatic;
452 | DEVELOPMENT_TEAM = "";
453 | INFOPLIST_FILE = iMultiExpandCollapse/Info.plist;
454 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
455 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapse;
456 | PRODUCT_NAME = "$(TARGET_NAME)";
457 | TARGETED_DEVICE_FAMILY = "1,2";
458 | };
459 | name = Release;
460 | };
461 | 14977BCA1F93270D0098B199 /* Debug */ = {
462 | isa = XCBuildConfiguration;
463 | buildSettings = {
464 | BUNDLE_LOADER = "$(TEST_HOST)";
465 | CODE_SIGN_STYLE = Automatic;
466 | DEVELOPMENT_TEAM = L23385S9TL;
467 | INFOPLIST_FILE = iMultiExpandCollapseTests/Info.plist;
468 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
469 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapseTests;
470 | PRODUCT_NAME = "$(TARGET_NAME)";
471 | TARGETED_DEVICE_FAMILY = "1,2";
472 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/iMultiExpandCollapse.app/iMultiExpandCollapse";
473 | };
474 | name = Debug;
475 | };
476 | 14977BCB1F93270D0098B199 /* Release */ = {
477 | isa = XCBuildConfiguration;
478 | buildSettings = {
479 | BUNDLE_LOADER = "$(TEST_HOST)";
480 | CODE_SIGN_STYLE = Automatic;
481 | DEVELOPMENT_TEAM = L23385S9TL;
482 | INFOPLIST_FILE = iMultiExpandCollapseTests/Info.plist;
483 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
484 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapseTests;
485 | PRODUCT_NAME = "$(TARGET_NAME)";
486 | TARGETED_DEVICE_FAMILY = "1,2";
487 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/iMultiExpandCollapse.app/iMultiExpandCollapse";
488 | };
489 | name = Release;
490 | };
491 | 14977BCD1F93270D0098B199 /* Debug */ = {
492 | isa = XCBuildConfiguration;
493 | buildSettings = {
494 | CODE_SIGN_STYLE = Automatic;
495 | DEVELOPMENT_TEAM = L23385S9TL;
496 | INFOPLIST_FILE = iMultiExpandCollapseUITests/Info.plist;
497 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
498 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapseUITests;
499 | PRODUCT_NAME = "$(TARGET_NAME)";
500 | TARGETED_DEVICE_FAMILY = "1,2";
501 | TEST_TARGET_NAME = iMultiExpandCollapse;
502 | };
503 | name = Debug;
504 | };
505 | 14977BCE1F93270D0098B199 /* Release */ = {
506 | isa = XCBuildConfiguration;
507 | buildSettings = {
508 | CODE_SIGN_STYLE = Automatic;
509 | DEVELOPMENT_TEAM = L23385S9TL;
510 | INFOPLIST_FILE = iMultiExpandCollapseUITests/Info.plist;
511 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
512 | PRODUCT_BUNDLE_IDENTIFIER = Admin.iMultiExpandCollapseUITests;
513 | PRODUCT_NAME = "$(TARGET_NAME)";
514 | TARGETED_DEVICE_FAMILY = "1,2";
515 | TEST_TARGET_NAME = iMultiExpandCollapse;
516 | };
517 | name = Release;
518 | };
519 | /* End XCBuildConfiguration section */
520 |
521 | /* Begin XCConfigurationList section */
522 | 14977B951F93270D0098B199 /* Build configuration list for PBXProject "iMultiExpandCollapse" */ = {
523 | isa = XCConfigurationList;
524 | buildConfigurations = (
525 | 14977BC41F93270D0098B199 /* Debug */,
526 | 14977BC51F93270D0098B199 /* Release */,
527 | );
528 | defaultConfigurationIsVisible = 0;
529 | defaultConfigurationName = Release;
530 | };
531 | 14977BC61F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapse" */ = {
532 | isa = XCConfigurationList;
533 | buildConfigurations = (
534 | 14977BC71F93270D0098B199 /* Debug */,
535 | 14977BC81F93270D0098B199 /* Release */,
536 | );
537 | defaultConfigurationIsVisible = 0;
538 | defaultConfigurationName = Release;
539 | };
540 | 14977BC91F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapseTests" */ = {
541 | isa = XCConfigurationList;
542 | buildConfigurations = (
543 | 14977BCA1F93270D0098B199 /* Debug */,
544 | 14977BCB1F93270D0098B199 /* Release */,
545 | );
546 | defaultConfigurationIsVisible = 0;
547 | defaultConfigurationName = Release;
548 | };
549 | 14977BCC1F93270D0098B199 /* Build configuration list for PBXNativeTarget "iMultiExpandCollapseUITests" */ = {
550 | isa = XCConfigurationList;
551 | buildConfigurations = (
552 | 14977BCD1F93270D0098B199 /* Debug */,
553 | 14977BCE1F93270D0098B199 /* Release */,
554 | );
555 | defaultConfigurationIsVisible = 0;
556 | defaultConfigurationName = Release;
557 | };
558 | /* End XCConfigurationList section */
559 | };
560 | rootObject = 14977B921F93270D0098B199 /* Project object */;
561 | }
562 |
--------------------------------------------------------------------------------
/iMultiExpandCollapse/iMultiData.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | New item
6 |
7 | Objects
8 |
9 |
10 | name
11 | 0 - Fruits
12 | level
13 | 0
14 | Objects
15 |
16 |
17 | name
18 | 1- Apple
19 | level
20 | 1
21 | Objects
22 |
23 |
24 | name
25 | 2- Green Apple
26 | level
27 | 2
28 | Objects
29 |
30 |
31 | name
32 | 3- ARUNACHAL PRADESH
33 | level
34 | 3
35 | Objects
36 |
37 |
38 | name
39 | 4- Keyboard
40 | level
41 | 4
42 |
43 |
44 | name
45 | 4- Mouse
46 | level
47 | 4
48 |
49 |
50 | name
51 | 4- MacMini
52 | level
53 | 4
54 |
55 |
56 | name
57 | 4- LED
58 | level
59 | 4
60 |
61 |
62 | name
63 | 4- LCD
64 | level
65 | 4
66 |
67 |
68 |
69 |
70 | name
71 | 3- HIMACHAL PRADESH
72 | level
73 | 3
74 | Objects
75 |
76 |
77 | name
78 | 4- WAN
79 | level
80 | 4
81 |
82 |
83 | name
84 | 4- LAN
85 | level
86 | 4
87 |
88 |
89 | name
90 | 4- MAN
91 | level
92 | 4
93 |
94 |
95 | name
96 | 4- PAN
97 | level
98 | 4
99 |
100 |
101 | name
102 | 4- Don
103 | level
104 | 4
105 |
106 |
107 |
108 |
109 | name
110 | 3- JAMMU & KASHMIR
111 | level
112 | 3
113 | Objects
114 |
115 |
116 | name
117 | 4- WAN
118 | level
119 | 4
120 |
121 |
122 | name
123 | 4- PowerPufff Girls
124 | level
125 | 4
126 |
127 |
128 | name
129 | 4- Richie Rich
130 | level
131 | 4
132 |
133 |
134 | name
135 | 4- Swat Cats
136 | level
137 | 4
138 |
139 |
140 | name
141 | 4- Johny Quest
142 | level
143 | 4
144 |
145 |
146 |
147 |
148 |
149 |
150 | name
151 | 2- Red Apple
152 | level
153 | 2
154 | Objects
155 |
156 |
157 | name
158 | 3- TAMIL NADU
159 | level
160 | 3
161 | Objects
162 |
163 |
164 | name
165 | 4- DataA
166 | level
167 | 4
168 |
169 |
170 | name
171 | 4- DataB
172 | level
173 | 4
174 |
175 |
176 | name
177 | 4- DataC
178 | level
179 | 4
180 |
181 |
182 | name
183 | 4- DataD
184 | level
185 | 4
186 |
187 |
188 | name
189 | 4- DataE
190 | level
191 | 4
192 |
193 |
194 |
195 |
196 | name
197 | 3- UTTRANCHAL
198 | level
199 | 3
200 | Objects
201 |
202 |
203 | name
204 | 4- DataX
205 | level
206 | 4
207 |
208 |
209 | level
210 | 4
211 | name
212 | 4- DataY
213 |
214 |
215 | name
216 | 4- DataZ
217 | level
218 | 4
219 |
220 |
221 | name
222 | 4- DataQ
223 | level
224 | 4
225 |
226 |
227 | name
228 | 4- DataT
229 | level
230 | 4
231 |
232 |
233 |
234 |
235 | name
236 | 3- SHIMLA
237 | level
238 | 3
239 | Objects
240 |
241 |
242 | name
243 | 4- AB
244 | level
245 | 4
246 |
247 |
248 | name
249 | 4- AC
250 | level
251 | 4
252 |
253 |
254 | name
255 | 4- AD
256 | level
257 | 4
258 |
259 |
260 | name
261 | 4- AE
262 | level
263 | 4
264 |
265 |
266 | name
267 | 4- AF
268 | level
269 | 4
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 | name
279 | 1- Mango
280 | level
281 | 1
282 | Objects
283 |
284 |
285 | name
286 | 2- Green Mango
287 | level
288 | 2
289 | Objects
290 |
291 |
292 | name
293 | 3- ANDAMAN NICOBAR
294 | level
295 | 3
296 | Objects
297 |
298 |
299 | name
300 | 4- Keyboard
301 | level
302 | 4
303 |
304 |
305 | name
306 | 4- Mouse
307 | level
308 | 4
309 |
310 |
311 | name
312 | 4- MacMini
313 | level
314 | 4
315 |
316 |
317 | name
318 | 4- LED
319 | level
320 | 4
321 |
322 |
323 | name
324 | 4- LCD
325 | level
326 | 4
327 |
328 |
329 |
330 |
331 | name
332 | 3- ASSAM
333 | level
334 | 3
335 | Objects
336 |
337 |
338 | name
339 | 4- WAN
340 | level
341 | 4
342 |
343 |
344 | name
345 | 4- LAN
346 | level
347 | 4
348 |
349 |
350 | name
351 | 4- MAN
352 | level
353 | 4
354 |
355 |
356 | name
357 | 4- PAN
358 | level
359 | 4
360 |
361 |
362 | name
363 | 4- Don
364 | level
365 | 4
366 |
367 |
368 |
369 |
370 | name
371 | 3- GUJARAT
372 | level
373 | 3
374 | Objects
375 |
376 |
377 | name
378 | 4- WAN
379 | level
380 | 4
381 |
382 |
383 | name
384 | 4- PowerPufff Girls
385 | level
386 | 4
387 |
388 |
389 | name
390 | 4- Richie Rich
391 | level
392 | 4
393 |
394 |
395 | name
396 | 4- Swat Cats
397 | level
398 | 4
399 |
400 |
401 | name
402 | 4- Johny Quest
403 | level
404 | 4
405 |
406 |
407 |
408 |
409 |
410 |
411 | name
412 | 2- Yellow Mango
413 | level
414 | 2
415 | Objects
416 |
417 |
418 | name
419 | 3- Ratnakar Jewl
420 | level
421 | 3
422 | Objects
423 |
424 |
425 | name
426 | 4- DataA
427 | level
428 | 4
429 |
430 |
431 | name
432 | 4- DataB
433 | level
434 | 4
435 |
436 |
437 | name
438 | 4- DataC
439 | level
440 | 4
441 |
442 |
443 | name
444 | 4- DataD
445 | level
446 | 4
447 |
448 |
449 | name
450 | 4- DataE
451 | level
452 | 4
453 |
454 |
455 |
456 |
457 | name
458 | 3- iTech Com. Edu
459 | level
460 | 3
461 | Objects
462 |
463 |
464 | name
465 | 4- DataX
466 | level
467 | 4
468 |
469 |
470 | level
471 | 4
472 | name
473 | 4- DataY
474 |
475 |
476 | name
477 | 4- DataZ
478 | level
479 | 4
480 |
481 |
482 | name
483 | 4- DataQ
484 | level
485 | 4
486 |
487 |
488 | name
489 | 4- DataT
490 | level
491 | 4
492 |
493 |
494 |
495 |
496 | name
497 | 3- Wipro DeskEng
498 | level
499 | 3
500 | Objects
501 |
502 |
503 | name
504 | 4- AB
505 | level
506 | 4
507 |
508 |
509 | name
510 | 4- AC
511 | level
512 | 4
513 |
514 |
515 | name
516 | 4- AD
517 | level
518 | 4
519 |
520 |
521 | name
522 | 4- AE
523 | level
524 | 4
525 |
526 |
527 | name
528 | 4- AF
529 | level
530 | 4
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 | name
542 | 0 - Vegetable
543 | level
544 | 0
545 | Objects
546 |
547 |
548 | name
549 | 1- POTATO
550 | level
551 | 1
552 | Objects
553 |
554 |
555 | name
556 | 2- POTATO 1 KG
557 | level
558 | 2
559 | Objects
560 |
561 |
562 | name
563 | 3- IT'S AWESOME
564 | level
565 | 3
566 | Objects
567 |
568 |
569 | name
570 | 4- M
571 | level
572 | 4
573 |
574 |
575 | name
576 | 4- N
577 | level
578 | 4
579 |
580 |
581 | name
582 | 4- O
583 | level
584 | 4
585 |
586 |
587 | name
588 | 4- P
589 | level
590 | 4
591 |
592 |
593 | name
594 | 4- Q
595 | level
596 | 4
597 |
598 |
599 |
600 |
601 | name
602 | 3- Home
603 | level
604 | 3
605 | Objects
606 |
607 |
608 | name
609 | 4- WAN
610 | level
611 | 4
612 |
613 |
614 | name
615 | 4- LAN
616 | level
617 | 4
618 |
619 |
620 | name
621 | 4- MAN
622 | level
623 | 4
624 |
625 |
626 | name
627 | 4- PAN
628 | level
629 | 4
630 |
631 |
632 | name
633 | 4- Don
634 | level
635 | 4
636 |
637 |
638 |
639 |
640 | name
641 | 3- GROCERY
642 | level
643 | 3
644 | Objects
645 |
646 |
647 | name
648 | 4- WAN
649 | level
650 | 4
651 |
652 |
653 | name
654 | 4- PowerPufff Girls
655 | level
656 | 4
657 |
658 |
659 | name
660 | 4- Richie Rich
661 | level
662 | 4
663 |
664 |
665 | name
666 | 4- Swat Cats
667 | level
668 | 4
669 |
670 |
671 | name
672 | 4- Johny Quest
673 | level
674 | 4
675 |
676 |
677 |
678 |
679 |
680 |
681 | name
682 | 2- POTATO 2 KG
683 | level
684 | 2
685 | Objects
686 |
687 |
688 | name
689 | 3- MARKET
690 | level
691 | 3
692 | Objects
693 |
694 |
695 | name
696 | 4- DataA
697 | level
698 | 4
699 |
700 |
701 | name
702 | 4- DataB
703 | level
704 | 4
705 |
706 |
707 | name
708 | 4- DataC
709 | level
710 | 4
711 |
712 |
713 | name
714 | 4- DataD
715 | level
716 | 4
717 |
718 |
719 | name
720 | 4- DataE
721 | level
722 | 4
723 |
724 |
725 |
726 |
727 | name
728 | 3- CITY
729 | level
730 | 3
731 | Objects
732 |
733 |
734 | name
735 | 4- DataX
736 | level
737 | 4
738 |
739 |
740 | level
741 | 4
742 | name
743 | 4- DataY
744 |
745 |
746 | name
747 | 4- DataZ
748 | level
749 | 4
750 |
751 |
752 | name
753 | 4- DataQ
754 | level
755 | 4
756 |
757 |
758 | name
759 | 4- DataT
760 | level
761 | 4
762 |
763 |
764 |
765 |
766 | name
767 | 3- Wipro DeskEng
768 | level
769 | 3
770 | Objects
771 |
772 |
773 | name
774 | 4- AB
775 | level
776 | 4
777 |
778 |
779 | name
780 | 4- AC
781 | level
782 | 4
783 |
784 |
785 | name
786 | 4- AD
787 | level
788 | 4
789 |
790 |
791 | name
792 | 4- AE
793 | level
794 | 4
795 |
796 |
797 | name
798 | 4- AF
799 | level
800 | 4
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 | name
810 | 1- TOMATO
811 | level
812 | 1
813 | Objects
814 |
815 |
816 | name
817 | 2- TOMATO 1 KG
818 | level
819 | 2
820 | Objects
821 |
822 |
823 | name
824 | 3- Computer
825 | level
826 | 3
827 | Objects
828 |
829 |
830 | name
831 | 4- Keyboard
832 | level
833 | 4
834 |
835 |
836 | name
837 | 4- Mouse
838 | level
839 | 4
840 |
841 |
842 | name
843 | 4- MacMini
844 | level
845 | 4
846 |
847 |
848 | name
849 | 4- LED
850 | level
851 | 4
852 |
853 |
854 | name
855 | 4- LCD
856 | level
857 | 4
858 |
859 |
860 |
861 |
862 | name
863 | 3- Home
864 | level
865 | 3
866 | Objects
867 |
868 |
869 | name
870 | 4- WAN
871 | level
872 | 4
873 |
874 |
875 | name
876 | 4- LAN
877 | level
878 | 4
879 |
880 |
881 | name
882 | 4- MAN
883 | level
884 | 4
885 |
886 |
887 | name
888 | 4- PAN
889 | level
890 | 4
891 |
892 |
893 | name
894 | 4- Don
895 | level
896 | 4
897 |
898 |
899 |
900 |
901 | name
902 | 3- Samurai Jack
903 | level
904 | 3
905 | Objects
906 |
907 |
908 | name
909 | 4- WAN
910 | level
911 | 4
912 |
913 |
914 | name
915 | 4- PowerPufff Girls
916 | level
917 | 4
918 |
919 |
920 | name
921 | 4- Richie Rich
922 | level
923 | 4
924 |
925 |
926 | name
927 | 4- Swat Cats
928 | level
929 | 4
930 |
931 |
932 | name
933 | 4- Johny Quest
934 | level
935 | 4
936 |
937 |
938 |
939 |
940 |
941 |
942 | name
943 | 2- TOMATO 2 KG
944 | level
945 | 2
946 | Objects
947 |
948 |
949 | name
950 | 3- Ratnakar Jewl
951 | level
952 | 3
953 | Objects
954 |
955 |
956 | name
957 | 4- DataA
958 | level
959 | 4
960 |
961 |
962 | name
963 | 4- DataB
964 | level
965 | 4
966 |
967 |
968 | name
969 | 4- DataC
970 | level
971 | 4
972 |
973 |
974 | name
975 | 4- DataD
976 | level
977 | 4
978 |
979 |
980 | name
981 | 4- DataE
982 | level
983 | 4
984 |
985 |
986 |
987 |
988 | name
989 | 3- iTech Com. Edu
990 | level
991 | 3
992 | Objects
993 |
994 |
995 | name
996 | 4- DataX
997 | level
998 | 4
999 |
1000 |
1001 | level
1002 | 4
1003 | name
1004 | 4- DataY
1005 |
1006 |
1007 | name
1008 | 4- DataZ
1009 | level
1010 | 4
1011 |
1012 |
1013 | name
1014 | 4- DataQ
1015 | level
1016 | 4
1017 |
1018 |
1019 | name
1020 | 4- DataT
1021 | level
1022 | 4
1023 |
1024 |
1025 |
1026 |
1027 | name
1028 | 3- Wipro DeskEng
1029 | level
1030 | 3
1031 | Objects
1032 |
1033 |
1034 | name
1035 | 4- AB
1036 | level
1037 | 4
1038 |
1039 |
1040 | name
1041 | 4- AC
1042 | level
1043 | 4
1044 |
1045 |
1046 | name
1047 | 4- AD
1048 | level
1049 | 4
1050 |
1051 |
1052 | name
1053 | 4- AE
1054 | level
1055 | 4
1056 |
1057 |
1058 | name
1059 | 4- AF
1060 | level
1061 | 4
1062 |
1063 |
1064 |
1065 |
1066 |
1067 |
1068 |
1069 |
1070 |
1071 |
1072 |
1073 |
1074 |
--------------------------------------------------------------------------------