├── 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 | --------------------------------------------------------------------------------