From 5c08a859155cb778207da1356254721a53ac1327 Mon Sep 17 00:00:00 2001 From: Rafal Augustyniak Date: Sun, 22 Nov 2015 14:41:18 +0100 Subject: [PATCH 1/4] Add nullability annotations in RATreeView.h file --- RATreeView/RATreeView/RATreeView.h | 68 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/RATreeView/RATreeView/RATreeView.h b/RATreeView/RATreeView/RATreeView.h index d4aff7f..5fbacc3 100644 --- a/RATreeView/RATreeView/RATreeView.h +++ b/RATreeView/RATreeView/RATreeView.h @@ -16,7 +16,7 @@ #import - +NS_ASSUME_NONNULL_BEGIN @class RATreeView, RATreeNodeCollectionController, RATreeNode; @@ -69,7 +69,7 @@ typedef enum RATreeViewRowAnimation { * * @return The number of child items encompassed by item. If item is nil, this method should return the number of children for the top-level item. */ -- (NSInteger)treeView:(RATreeView *)treeView numberOfChildrenOfItem:(id)item; +- (NSInteger)treeView:(RATreeView *)treeView numberOfChildrenOfItem:(nullable id)item; /** @@ -80,7 +80,7 @@ typedef enum RATreeViewRowAnimation { * * @return An object inheriting from UITableViewCell that the tree view can use for the specified row. An assertion is raised if you return nil. */ -- (UITableViewCell *)treeView:(RATreeView *)treeView cellForItem:(id)item; +- (UITableViewCell *)treeView:(RATreeView *)treeView cellForItem:(nullable id)item; /** * Ask the data source to return the child item at the specified index of a given item. (required) @@ -91,7 +91,7 @@ typedef enum RATreeViewRowAnimation { * * @return The child item at index of a item. If item is nil, returns the appropriate child item of the root object. */ -- (id)treeView:(RATreeView *)treeView child:(NSInteger)index ofItem:(id)item; +- (id)treeView:(RATreeView *)treeView child:(NSInteger)index ofItem:(nullable id)item; @optional @@ -451,8 +451,8 @@ typedef enum RATreeViewRowAnimation { /// @name Managing the Delegate and the Data Source ///------------------------------------------------ -@property (weak, nonatomic) id dataSource; -@property (weak, nonatomic) id delegate; +@property (nonatomic, nullable, weak) id dataSource; +@property (nonatomic, nullable, weak) id delegate; ///------------------------------------------------ @@ -462,26 +462,26 @@ typedef enum RATreeViewRowAnimation { - (NSInteger)numberOfRows; @property (nonatomic, readonly) RATreeViewStyle style; @property (nonatomic) RATreeViewCellSeparatorStyle separatorStyle; -@property (strong, nonatomic) UIColor *separatorColor; +@property (nonatomic, nullable, strong) UIColor *separatorColor; @property (nonatomic) CGFloat rowHeight; @property (nonatomic) CGFloat estimatedRowHeight NS_AVAILABLE_IOS(7_0); @property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0); -@property (copy, nonatomic) UIVisualEffect *separatorEffect NS_AVAILABLE_IOS(8_0) UI_APPEARANCE_SELECTOR; +@property (nonatomic, nullable, copy) UIVisualEffect *separatorEffect NS_AVAILABLE_IOS(8_0) UI_APPEARANCE_SELECTOR; @property (nonatomic) BOOL cellLayoutMarginsFollowReadableWidth NS_AVAILABLE_IOS(9_0); -@property (strong, nonatomic) UIView *backgroundView; +@property (nonatomic, nullable, strong) UIView *backgroundView; ///------------------------------------------------ /// @name Expanding and Collapsing Rows ///------------------------------------------------ -- (void)expandRowForItem:(id)item expandChildren:(BOOL)expandChildren withRowAnimation:(RATreeViewRowAnimation)animation; -- (void)expandRowForItem:(id)item withRowAnimation:(RATreeViewRowAnimation)animation; -- (void)expandRowForItem:(id)item; -- (void)collapseRowForItem:(id)item collapseChildren:(BOOL)collapseChildren withRowAnimation:(RATreeViewRowAnimation)animation; -- (void)collapseRowForItem:(id)item withRowAnimation:(RATreeViewRowAnimation)animation; -- (void)collapseRowForItem:(id)item; +- (void)expandRowForItem:(nullable id)item expandChildren:(BOOL)expandChildren withRowAnimation:(RATreeViewRowAnimation)animation; +- (void)expandRowForItem:(nullable id)item withRowAnimation:(RATreeViewRowAnimation)animation; +- (void)expandRowForItem:(nullable id)item; +- (void)collapseRowForItem:(nullable id)item collapseChildren:(BOOL)collapseChildren withRowAnimation:(RATreeViewRowAnimation)animation; +- (void)collapseRowForItem:(nullable id)item withRowAnimation:(RATreeViewRowAnimation)animation; +- (void)collapseRowForItem:(nullable id)item; @property (nonatomic) BOOL expandsChildRowsWhenRowExpands; @property (nonatomic) BOOL collapsesChildRowsWhenRowCollapses; @property (nonatomic) RATreeViewRowAnimation rowsExpandingAnimation; @@ -494,18 +494,18 @@ typedef enum RATreeViewRowAnimation { - (void)beginUpdates; - (void)endUpdates; -- (void)insertItemsAtIndexes:(NSIndexSet *)indexes inParent:(id)parent withAnimation:(RATreeViewRowAnimation)animation; -- (void)moveItemAtIndex:(NSInteger)oldIndex inParent:(id)oldParent toIndex:(NSInteger)newIndex inParent:(id)newParent; -- (void)deleteItemsAtIndexes:(NSIndexSet *)indexes inParent:(id)parent withAnimation:(RATreeViewRowAnimation)animation; +- (void)insertItemsAtIndexes:(NSIndexSet *)indexes inParent:(nullable id)parent withAnimation:(RATreeViewRowAnimation)animation; +- (void)moveItemAtIndex:(NSInteger)oldIndex inParent:(nullable id)oldParent toIndex:(NSInteger)newIndex inParent:(nullable id)newParent; +- (void)deleteItemsAtIndexes:(NSIndexSet *)indexes inParent:(nullable id)parent withAnimation:(RATreeViewRowAnimation)animation; ///------------------------------------------------ /// @name Creating Tree View Cells ///------------------------------------------------ -- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0); -- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier; -- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; +- (void)registerClass:(nullable Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0); +- (void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier; +- (nullable id)dequeueReusableCellWithIdentifier:(NSString *)identifier; ///------------------------------------------------ @@ -515,8 +515,8 @@ typedef enum RATreeViewRowAnimation { - (void)registerNib:(UINib *)nib forHeaderFooterViewReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0); - (void)registerClass:(Class)aClass forHeaderFooterViewReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0); - (id)dequeueReusableHeaderFooterViewWithIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0); -@property (strong, nonatomic) UIView *treeHeaderView; -@property (strong, nonatomic) UIView *treeFooterView; +@property (nonatomic, nullable, strong) UIView *treeHeaderView; +@property (nonatomic, nullable, strong) UIView *treeFooterView; ///------------------------------------------------ @@ -539,19 +539,19 @@ typedef enum RATreeViewRowAnimation { /// @name Getting the Parent for an Item ///------------------------------------------------ -- (id)parentForItem:(id)parent; +- (nullable id)parentForItem:(id)parent; ///------------------------------------------------ /// @name Accessing Cells ///------------------------------------------------ -- (UITableViewCell *)cellForItem:(id)item; -- (NSArray *)visibleCells; -- (id)itemForCell:(UITableViewCell *)cell; -- (id)itemForRowAtPoint:(CGPoint)point; -- (id)itemsForRowsInRect:(CGRect)rect; -@property(nonatomic, readonly) NSArray *itemsForVisibleCells; +- (nullable UITableViewCell *)cellForItem:(id)item; +- (nullable NSArray *)visibleCells; +- (nullable id)itemForCell:(UITableViewCell *)cell; +- (nullable id)itemForRowAtPoint:(CGPoint)point; +- (nullable id)itemsForRowsInRect:(CGRect)rect; +@property(nonatomic, readonly) NSArray *itemsForVisibleCells; //to trzeba naprawic ///------------------------------------------------ @@ -566,9 +566,9 @@ typedef enum RATreeViewRowAnimation { /// @name Managing Selections ///------------------------------------------------ -- (id)itemForSelectedRow; -- (NSArray *)itemsForSelectedRows; -- (void)selectRowForItem:(id)item animated:(BOOL)animated scrollPosition:(RATreeViewScrollPosition)scrollPosition; +- (nullable id)itemForSelectedRow; +- (nullable NSArray *)itemsForSelectedRows; +- (void)selectRowForItem:(nullable id)item animated:(BOOL)animated scrollPosition:(RATreeViewScrollPosition)scrollPosition; - (void)deselectRowForItem:(id)item animated:(BOOL)animated; @property (nonatomic) BOOL allowsSelection; @property (nonatomic) BOOL allowsMultipleSelection; @@ -600,3 +600,5 @@ typedef enum RATreeViewRowAnimation { @property (nonatomic, strong, readonly) UIScrollView *scrollView; @end + +NS_ASSUME_NONNULL_END From 26524a46844faf2d852dd865852f25fdafef3f97 Mon Sep 17 00:00:00 2001 From: Rafal Augustyniak Date: Sat, 28 Nov 2015 10:28:14 +0100 Subject: [PATCH 2/4] Return nil instead of empty array to match behaviour of the UITableView --- RATreeView/RATreeView/RATreeView.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RATreeView/RATreeView/RATreeView.m b/RATreeView/RATreeView/RATreeView.m index f7d94fd..f94b1c6 100644 --- a/RATreeView/RATreeView/RATreeView.m +++ b/RATreeView/RATreeView/RATreeView.m @@ -597,6 +597,9 @@ - (void)zoomToRect:(CGRect)rect animated:(BOOL)animated - (NSArray *)itemsForIndexPaths:(NSArray *)indexPaths { + if (!indexPaths) { + return nil; + } NSMutableArray *items = [NSMutableArray array]; for (NSIndexPath *indexPath in indexPaths) { [items addObject:[self treeNodeForIndexPath:indexPath].item]; From cf491a30bdc4adde70e1df4361c97061f7211e77 Mon Sep 17 00:00:00 2001 From: Rafal Augustyniak Date: Sat, 28 Nov 2015 10:32:28 +0100 Subject: [PATCH 3/4] Fix wrong name of the property. Wrong name of the property caused that it didn't work because it didn't have matching implementation. --- RATreeView/RATreeView/RATreeView.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RATreeView/RATreeView/RATreeView.h b/RATreeView/RATreeView/RATreeView.h index 5fbacc3..5b95eaf 100644 --- a/RATreeView/RATreeView/RATreeView.h +++ b/RATreeView/RATreeView/RATreeView.h @@ -551,7 +551,7 @@ typedef enum RATreeViewRowAnimation { - (nullable id)itemForCell:(UITableViewCell *)cell; - (nullable id)itemForRowAtPoint:(CGPoint)point; - (nullable id)itemsForRowsInRect:(CGRect)rect; -@property(nonatomic, readonly) NSArray *itemsForVisibleCells; //to trzeba naprawic +@property (nonatomic, nullable, copy, readonly) NSArray *itemsForVisibleRows; ///------------------------------------------------ From 280b173d8d3cf5982a5708c23a3ff46eb35a39e7 Mon Sep 17 00:00:00 2001 From: Rafal Augustyniak Date: Sun, 22 Nov 2015 15:01:56 +0100 Subject: [PATCH 4/4] Add Swift example project --- Examples/Podfile | 1 + Examples/Podfile.lock | 4 +- .../Headers/Public/RATreeView/RATreeView.h | 1 - .../Local Podspecs/RATreeView.podspec.json | 4 +- Examples/Pods/Manifest.lock | 4 +- Examples/Pods/Pods.xcodeproj/project.pbxproj | 594 ++++++++++-------- .../xcschemes/RATreeView.xcscheme | 4 +- .../Pods/Target Support Files/Pods/Info.plist | 26 + .../Pods/Pods-frameworks.sh | 7 + .../Target Support Files/Pods/Pods-umbrella.h | 6 + .../Pods/Pods.debug.xcconfig | 7 +- .../Target Support Files/Pods/Pods.modulemap | 6 + .../Pods/Pods.release.xcconfig | 7 +- .../RATreeView/Info.plist | 26 + .../RATreeView/RATreeView-umbrella.h | 7 + .../RATreeView/RATreeView.modulemap | 6 + .../RATreeView/RATreeView.xcconfig | 2 +- .../AppDelegate.swift | 25 + .../AppIcon.appiconset/Contents.json | 68 ++ .../Base.lproj/LaunchScreen.storyboard | 27 + .../Base.lproj/Main.storyboard | 135 ++++ .../DataObject.swift | 33 + .../RATreeViewBasicExampleSwift/Info.plist | 55 ++ .../TreeTableViewCell.swift | 57 ++ .../TreeTableViewCell.xib | 52 ++ .../TreeViewController.swift | 166 +++++ .../project.pbxproj | 147 ++++- 27 files changed, 1193 insertions(+), 284 deletions(-) delete mode 120000 Examples/Pods/Headers/Public/RATreeView/RATreeView.h create mode 100644 Examples/Pods/Target Support Files/Pods/Info.plist create mode 100644 Examples/Pods/Target Support Files/Pods/Pods-umbrella.h create mode 100644 Examples/Pods/Target Support Files/Pods/Pods.modulemap create mode 100644 Examples/Pods/Target Support Files/RATreeView/Info.plist create mode 100644 Examples/Pods/Target Support Files/RATreeView/RATreeView-umbrella.h create mode 100644 Examples/Pods/Target Support Files/RATreeView/RATreeView.modulemap create mode 100644 Examples/RATreeViewBasicExampleSwift/AppDelegate.swift create mode 100644 Examples/RATreeViewBasicExampleSwift/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Examples/RATreeViewBasicExampleSwift/Base.lproj/LaunchScreen.storyboard create mode 100644 Examples/RATreeViewBasicExampleSwift/Base.lproj/Main.storyboard create mode 100644 Examples/RATreeViewBasicExampleSwift/DataObject.swift create mode 100644 Examples/RATreeViewBasicExampleSwift/Info.plist create mode 100644 Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.swift create mode 100644 Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.xib create mode 100644 Examples/RATreeViewBasicExampleSwift/TreeViewController.swift diff --git a/Examples/Podfile b/Examples/Podfile index a101476..3ee3547 100644 --- a/Examples/Podfile +++ b/Examples/Podfile @@ -2,5 +2,6 @@ source 'https://github.com/CocoaPods/Specs.git' workspace 'RATreeViewExamples.xcworkspace' platform :ios, '5.0' +use_frameworks! pod 'RATreeView', :path => '../RATreeView.podspec' diff --git a/Examples/Podfile.lock b/Examples/Podfile.lock index 211b991..6d798d6 100644 --- a/Examples/Podfile.lock +++ b/Examples/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - RATreeView (2.0.0) + - RATreeView (2.0.1) DEPENDENCIES: - RATreeView (from `../RATreeView.podspec`) @@ -9,6 +9,6 @@ EXTERNAL SOURCES: :path: "../RATreeView.podspec" SPEC CHECKSUMS: - RATreeView: fc067313776c0b3c4cc6074ffbc42a8b40e5966b + RATreeView: 42cd7a96cad0dea6330a9fd98b4b7a5222a01083 COCOAPODS: 0.39.0 diff --git a/Examples/Pods/Headers/Public/RATreeView/RATreeView.h b/Examples/Pods/Headers/Public/RATreeView/RATreeView.h deleted file mode 120000 index 07bfa6d..0000000 --- a/Examples/Pods/Headers/Public/RATreeView/RATreeView.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../RATreeView/RATreeView/RATreeView.h \ No newline at end of file diff --git a/Examples/Pods/Local Podspecs/RATreeView.podspec.json b/Examples/Pods/Local Podspecs/RATreeView.podspec.json index 943efb0..2d16d68 100644 --- a/Examples/Pods/Local Podspecs/RATreeView.podspec.json +++ b/Examples/Pods/Local Podspecs/RATreeView.podspec.json @@ -1,6 +1,6 @@ { "name": "RATreeView", - "version": "2.0.0", + "version": "2.0.1", "summary": "RATreeView provide you a great support to display the tree structures on iOS.", "homepage": "https://github.com/Augustyniak/RATreeView", "screenshots": "https://raw.github.com/Augustyniak/RATreeView/master/Screens/animation.gif", @@ -13,7 +13,7 @@ }, "source": { "git": "https://github.com/Augustyniak/RATreeView.git", - "tag": "2.0.0" + "tag": "2.0.1" }, "platforms": { "ios": "5.0" diff --git a/Examples/Pods/Manifest.lock b/Examples/Pods/Manifest.lock index 211b991..6d798d6 100644 --- a/Examples/Pods/Manifest.lock +++ b/Examples/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - RATreeView (2.0.0) + - RATreeView (2.0.1) DEPENDENCIES: - RATreeView (from `../RATreeView.podspec`) @@ -9,6 +9,6 @@ EXTERNAL SOURCES: :path: "../RATreeView.podspec" SPEC CHECKSUMS: - RATreeView: fc067313776c0b3c4cc6074ffbc42a8b40e5966b + RATreeView: 42cd7a96cad0dea6330a9fd98b4b7a5222a01083 COCOAPODS: 0.39.0 diff --git a/Examples/Pods/Pods.xcodeproj/project.pbxproj b/Examples/Pods/Pods.xcodeproj/project.pbxproj index bbf9aa8..e6476ab 100644 --- a/Examples/Pods/Pods.xcodeproj/project.pbxproj +++ b/Examples/Pods/Pods.xcodeproj/project.pbxproj @@ -7,326 +7,350 @@ objects = { /* Begin PBXBuildFile section */ - 002C7BE55E62099BA15E4182EC49D244 /* RATreeView+TableViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 04B9D636924665E035BFBA9BE0DE77EE /* RATreeView+TableViewDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 050D4D218DB925B3664B90B7475F5717 /* RATreeView+RATreeNodeCollectionControllerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = C7456E5BDD8BD50BD1C0BCF4C3881CEE /* RATreeView+RATreeNodeCollectionControllerDataSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 14C09143D7E2F959CF76F81822EC2985 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 1AF671F62369AE01D998C798902953D5 /* RATreeNodeController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DDEE82D0C602BCF15DBB2B3CAE319AC /* RATreeNodeController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1FAB5791B10B516530A0EDDD83719340 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 2250144BD49DDB286168A2BF1D2F3AC5 /* RATreeNode_ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 05198226C93EBA5E86358DF2CCCACEE0 /* RATreeNode_ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3337CD34BCD0B1121428562A35864001 /* RABatchChanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 96CDDD7B7E5C6458D5A2B8505E90C928 /* RABatchChanges.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3B0B1AD5674CF89586B1E1C7651C35C2 /* RATreeView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = F43C53BA636A79E0D279608B5B3B2486 /* RATreeView+Private.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3E1555615614F3F47E366292CF0AB554 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 272643F56613CA0D336AE3DBF19DC404 /* Pods-dummy.m */; }; - 43F5D3AF6C9A0D30ABA054B7F4B6FDAE /* RABatchChangeEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BDF014D376B58C6180A1E350ED6E2A7 /* RABatchChangeEntity.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 44670F49E8F83BD0F4DCCD442C2384A8 /* RATreeView+RATreeNodeCollectionControllerDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E36CE24A6FD581421385BF25655E8AC /* RATreeView+RATreeNodeCollectionControllerDataSource.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5325937AF7A4223BFAF499025A460A8E /* RATreeView+TableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 95D388B57FEBE70FB0BB62052D7A678A /* RATreeView+TableViewDelegate.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 660C53010C9530FC704D0B4B788EAB8F /* RATreeView+TableViewDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = D9ED492BC14C2F11E5ECAB6B03A1F5B7 /* RATreeView+TableViewDataSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 681B38315176F4B56F8E050DF74AD1EC /* RABatchChangeEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = D1B5868D9084D02B1265952D25FD1E5B /* RABatchChangeEntity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6B73751D575FCCADB761BB071D02309A /* RATreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF7E002A450DA5DA1FF89647836628 /* RATreeNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 708A098B34342E906FB4F82C586EAB39 /* RATreeView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 23929649F58A4742D5E2E4A45AC7A8E1 /* RATreeView-dummy.m */; }; - 7262E25B7DC01B53DDA4C73ADAF0B7CD /* RATableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3731E0FED6AF9FFE896DD5A3FE3D111B /* RATableView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 73B69B00D672A0544C6B4F7481335795 /* RATreeView.h in Headers */ = {isa = PBXBuildFile; fileRef = CF31BFC1E8E38FB59F4143AB8D1F1AD7 /* RATreeView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77B20F1118DD51B2A55037F501F58484 /* RATreeNodeItem+ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 96589336D8CD5F9CCA5F2C90E7AA4930 /* RATreeNodeItem+ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7A759EAE5CACB46E31FAE8810AF8D854 /* RATreeView+TableViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 93B2C65D2B7B37352A62A92C3D806C87 /* RATreeView+TableViewDataSource.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7EA2B1DA87A7F29E676ED6DA52D009F5 /* RATreeNodeItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 086E403EB29B30E8D11642374B65950B /* RATreeNodeItem.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8018EA34D7988B0A30A2DAA42D072C02 /* RATreeNodeItem+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD326E9DF5CF01E2898B7C5DFD5157D /* RATreeNodeItem+Private.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 808DA83C4D3F799890E68C3CCCF9A084 /* RATreeNodeCollectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 94CD2D982769D68D3076E890638580CB /* RATreeNodeCollectionController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 81E48AB669B577AE75444DFA4343CDA9 /* RATableView.m in Sources */ = {isa = PBXBuildFile; fileRef = BEBF82F29986E5697EFFF426BCA7B273 /* RATableView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 82E679155433F86B95A5F65B280793F5 /* RABatchChanges.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F02ADC217EDE8153C0D2B38D13E364 /* RABatchChanges.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 89EA0DE49183B350CAD3F57531104624 /* RATreeNodeItem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 964B93D11F6ED5F10F147D3FEB178541 /* RATreeNodeItem+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 91DF54B4BED3FDB20C1BE32D9F9269E6 /* RATreeNodeItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 51AA34AF6B31A849FF408F6C99D967F5 /* RATreeNodeItem.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9A1AD67963597E9ED606192D39AB8948 /* RATreeView+Enums.h in Headers */ = {isa = PBXBuildFile; fileRef = 5388C521A2366BE48C916AE75EB7D77C /* RATreeView+Enums.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A21360BB0A26017EB7712A825A9AC636 /* RATreeNodeController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B19E44199E5675025D42AAD9721810C /* RATreeNodeController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A8DE8ED62D83CF95AD3A59B3D0EC1D2D /* RATreeView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 610A8407CD8356EDF5D4EF828203AD85 /* RATreeView+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C825E0A802725BB3526528D0B5BD4D29 /* RATreeView_ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = C4FD19695BF11853958BE54B23FF5666 /* RATreeView_ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE2223A7C5869D8419357A3E41068623 /* RATreeNodeCollectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 562CD27595CFD6628DB3E118A41DBA8B /* RATreeNodeCollectionController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE3AFBB633A3C17287FDEF4BF3EB92E3 /* RATreeView+Enums.m in Sources */ = {isa = PBXBuildFile; fileRef = E883903C871A45492E6E33D90F56D863 /* RATreeView+Enums.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E36F28894EE0F3A4D7E8A5F2D978D158 /* RATreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 85003999AB47D53D6FA233EEC6792720 /* RATreeNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FF72C3561F2762EBA9243B5C856325DF /* RATreeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2666DAEEC0042D8E8C5DA705574DF79D /* RATreeView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 00DA7E3A97B00A367B1B81543715DA0D /* RATreeNodeCollectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA2015B56463FC41CED495F58C19270 /* RATreeNodeCollectionController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1216D27CD152906D68C239833DF8F422 /* RATreeNode_ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = AABE1F9C417AF649159212E0BCC6A707 /* RATreeNode_ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 128EB21304B70992C049742318679640 /* RATreeView+TableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B101EBF97122815BE461D9D2D4406260 /* RATreeView+TableViewDelegate.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 176B563EF770B02ACC749D0E13AF5FC3 /* RATreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C8CC426FB53F52457AE087DC93FE9D /* RATreeNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 19795CDC9861001FD21164B38D609913 /* RATreeView+RATreeNodeCollectionControllerDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = D75E56C080966DEE8C475059875A676D /* RATreeView+RATreeNodeCollectionControllerDataSource.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1A36379B33C24C5A1B6896B7DF139638 /* RATreeView+Enums.m in Sources */ = {isa = PBXBuildFile; fileRef = A85C827A8CD0188CE389D8F9B95531A9 /* RATreeView+Enums.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1E4303F88FA67B8885B3022287298737 /* RATreeNodeItem+ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 13935C82B7F1DCDD108820B7360CD302 /* RATreeNodeItem+ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1F0D0384DCEFEE4070CCF69422F620DC /* RABatchChanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3126C6FE061A509D8C52CCD043E16B /* RABatchChanges.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2F1FA4578DEBD8B7D434CFDF9EE2E800 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */; }; + 35B0D6D7E5E986F7468B6BBBB291001E /* RATreeNodeItem+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6DA15643B6785D4B5B3A52824E89A /* RATreeNodeItem+Private.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4C349FA8099E64F3C2D7654555485605 /* RATreeNodeItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A90BF37D1CD714D224DCF397AE1FF7 /* RATreeNodeItem.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4DF535F83A58E90B7A817698B670FBAC /* RATreeView_ClassExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = DBFE75FE04F07D32CC21DE48E7881ED3 /* RATreeView_ClassExtension.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 52E652126D4A3229AD477F17846D77F4 /* RATreeView+RATreeNodeCollectionControllerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E1B9CD6FD01A21468000EC59CC89833 /* RATreeView+RATreeNodeCollectionControllerDataSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 536EACE24CA6E6829A6A932B28B9CFDA /* RATreeView.m in Sources */ = {isa = PBXBuildFile; fileRef = B5D15B2AC16AB9E124AC5851917F212A /* RATreeView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5DA7BBA255ABE9DCA4BEB794D7926917 /* RATreeView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 71D77BE634D5D3EB31F7F6C5C407FD2A /* RATreeView+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5E462D78196D90B2CB7BCEA2001F8B93 /* RATreeView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 405F4C7D8E72F43FD6B96ED2A2456DFA /* RATreeView+Private.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 686C5BD36C633DACB4C83065C79E1557 /* RATreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = EF3FF29CD28EF46C436242A34E3E1D79 /* RATreeNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6CE6C50EA00E00A829BCE7E37DFA13D0 /* RABatchChangeEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD8172F1A4878A37D6F0F21C278F6B0 /* RABatchChangeEntity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 70075A6EF960F2C2ED1F5AD1C48873E3 /* RATreeView+TableViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E9B10A555BC021E092656217C09C067 /* RATreeView+TableViewDataSource.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 75254EA03309AD8F11A39BF8323DBB71 /* RABatchChanges.m in Sources */ = {isa = PBXBuildFile; fileRef = F868E153BA161BF4E7139864532BC79D /* RABatchChanges.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 82FB60E264053E9304AEBEB58EC8FC7C /* RATreeView+TableViewDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C74E38644A984C564C4380EB5BE1664 /* RATreeView+TableViewDataSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 850A1066C9A661F74FF91C1DEACC0E6C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; + 92FB102FBDD40FDDB6E2D4C3BA122DE8 /* RATreeNodeItem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 985C3204B5A3EF6AD48E0972928B2ED4 /* RATreeNodeItem+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AC6C53F9BF1046D5D80829ECA82DD37D /* RATreeView+TableViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C32F4441C36613BDD271B08A31449870 /* RATreeView+TableViewDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B6C74E5447C8740B25ED487F6EFC4997 /* RATreeNodeCollectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = AD807B25DEF16DEE6413F402AD3952A2 /* RATreeNodeCollectionController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BAF9982EB2982DD5C29E82B7417F9931 /* RABatchChangeEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DF36A0AF10889CC044AB123D0A86715 /* RABatchChangeEntity.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BFFA08438CF972A7E6DFD24180F3DBB6 /* RATreeView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C73F9F97D5D43569E410783BE325DA5 /* RATreeView-dummy.m */; }; + C12803DEEF5E36FA868DA7512151D772 /* Pods-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D009078A8DD34C6507C089A6458060CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; + D3F8C4A119DC249499C4C9D8664F043B /* RATreeView.h in Headers */ = {isa = PBXBuildFile; fileRef = C2F3CB5A53A1B8D0C4AEDD1B424BF084 /* RATreeView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6A9E9B60AEC47623F580F84E14C0333 /* RATreeNodeController.h in Headers */ = {isa = PBXBuildFile; fileRef = 55552D4FB12A3D47CE37F25AF651D522 /* RATreeNodeController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DAE0E31AA40EC062646486A0CD87D478 /* RATreeView+Enums.h in Headers */ = {isa = PBXBuildFile; fileRef = DEF84FDD6DF41E22D6B81EEC2D7C5B34 /* RATreeView+Enums.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E70FEAD74319EBA3CE1B8A0C8373E808 /* RATreeView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 07DB13009B628400D2A74A618FC72519 /* RATreeView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EABFFC06B1DF0830C02C24588EDCC3CE /* RATreeNodeController.m in Sources */ = {isa = PBXBuildFile; fileRef = E539B780066CA524A7E4810F8CADA613 /* RATreeNodeController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EB058C76595DA8109C32F75D8461893E /* RATableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 890906899F4C9E1EA0AE49D07C20BA50 /* RATableView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EEAA08677F22DF86575D91185D12ABDD /* RATreeNodeItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E00A340C461EC7D951E32165A9CA353 /* RATreeNodeItem.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F014F76DC2CDB9B76E6F9337EE5580FD /* RATableView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7F16EBE212ED721864971A48E29999 /* RATableView.h */; settings = {ATTRIBUTES = (Project, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 1369162B6AE1D64C82AF429A2885C219 /* PBXContainerItemProxy */ = { + 49E58D8E6203CA02EF9FE59BDC032671 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = ABC4D43D1D55F92917590237397E800A; + remoteGlobalIDString = 910FF0DC6676CD6DAC2B72616854407B; remoteInfo = RATreeView; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 04B9D636924665E035BFBA9BE0DE77EE /* RATreeView+TableViewDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+TableViewDelegate.h"; sourceTree = ""; }; - 05198226C93EBA5E86358DF2CCCACEE0 /* RATreeNode_ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNode_ClassExtension.h; sourceTree = ""; }; - 086E403EB29B30E8D11642374B65950B /* RATreeNodeItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeItem.h; sourceTree = ""; }; - 0B19E44199E5675025D42AAD9721810C /* RATreeNodeController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeController.h; sourceTree = ""; }; - 0BDF014D376B58C6180A1E350ED6E2A7 /* RABatchChangeEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RABatchChangeEntity.h; sourceTree = ""; }; - 10834806BD7B412BC24F347361FA2C8E /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; - 176D26785433B198BA905BE807810538 /* libRATreeView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRATreeView.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 1ADF7E002A450DA5DA1FF89647836628 /* RATreeNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNode.m; sourceTree = ""; }; - 23929649F58A4742D5E2E4A45AC7A8E1 /* RATreeView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView-dummy.m"; sourceTree = ""; }; - 2666DAEEC0042D8E8C5DA705574DF79D /* RATreeView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeView.m; sourceTree = ""; }; - 272643F56613CA0D336AE3DBF19DC404 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; - 2C933AB72110A40391AD84A15EA5059F /* RATreeView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RATreeView.xcconfig; sourceTree = ""; }; - 2DDEE82D0C602BCF15DBB2B3CAE319AC /* RATreeNodeController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeController.m; sourceTree = ""; }; - 2E36CE24A6FD581421385BF25655E8AC /* RATreeView+RATreeNodeCollectionControllerDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+RATreeNodeCollectionControllerDataSource.m"; sourceTree = ""; }; - 3731E0FED6AF9FFE896DD5A3FE3D111B /* RATableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATableView.h; sourceTree = ""; }; - 37DB56D75062CC75FCB0966E1C6E8A8E /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; + 07DB13009B628400D2A74A618FC72519 /* RATreeView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView-umbrella.h"; sourceTree = ""; }; + 13935C82B7F1DCDD108820B7360CD302 /* RATreeNodeItem+ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeNodeItem+ClassExtension.h"; sourceTree = ""; }; + 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-umbrella.h"; sourceTree = ""; }; + 2C73F9F97D5D43569E410783BE325DA5 /* RATreeView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView-dummy.m"; sourceTree = ""; }; + 31C8CC426FB53F52457AE087DC93FE9D /* RATreeNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNode.h; sourceTree = ""; }; + 31E2940415B3D4F6E8D5D5A9483BC10A /* RATreeView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RATreeView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3E1B9CD6FD01A21468000EC59CC89833 /* RATreeView+RATreeNodeCollectionControllerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+RATreeNodeCollectionControllerDataSource.h"; sourceTree = ""; }; 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 4E762F23EC34ED4A6FF3312D84E33A40 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; - 51AA34AF6B31A849FF408F6C99D967F5 /* RATreeNodeItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeItem.m; sourceTree = ""; }; - 5388C521A2366BE48C916AE75EB7D77C /* RATreeView+Enums.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+Enums.h"; sourceTree = ""; }; - 562CD27595CFD6628DB3E118A41DBA8B /* RATreeNodeCollectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeCollectionController.h; sourceTree = ""; }; - 610A8407CD8356EDF5D4EF828203AD85 /* RATreeView+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+Private.h"; sourceTree = ""; }; - 66F02ADC217EDE8153C0D2B38D13E364 /* RABatchChanges.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RABatchChanges.m; sourceTree = ""; }; - 6911BECA35E7518D864239B7E898EEF3 /* Pods-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-frameworks.sh"; sourceTree = ""; }; - 85003999AB47D53D6FA233EEC6792720 /* RATreeNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNode.h; sourceTree = ""; }; - 8BD326E9DF5CF01E2898B7C5DFD5157D /* RATreeNodeItem+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeNodeItem+Private.m"; sourceTree = ""; }; - 93B2C65D2B7B37352A62A92C3D806C87 /* RATreeView+TableViewDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+TableViewDataSource.m"; sourceTree = ""; }; - 94CD2D982769D68D3076E890638580CB /* RATreeNodeCollectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeCollectionController.m; sourceTree = ""; }; - 95D388B57FEBE70FB0BB62052D7A678A /* RATreeView+TableViewDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+TableViewDelegate.m"; sourceTree = ""; }; - 964B93D11F6ED5F10F147D3FEB178541 /* RATreeNodeItem+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeNodeItem+Private.h"; sourceTree = ""; }; - 96589336D8CD5F9CCA5F2C90E7AA4930 /* RATreeNodeItem+ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeNodeItem+ClassExtension.h"; sourceTree = ""; }; - 96CDDD7B7E5C6458D5A2B8505E90C928 /* RABatchChanges.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RABatchChanges.h; sourceTree = ""; }; - 98C98CDFB3F20F2925F6CD1F141BB14F /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; - A1A36D34413696BE466E2CA0AFF194DA /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; - B5ADAE080A1AA56B5023C35F5BA585E5 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 3E9B10A555BC021E092656217C09C067 /* RATreeView+TableViewDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+TableViewDataSource.m"; sourceTree = ""; }; + 405F4C7D8E72F43FD6B96ED2A2456DFA /* RATreeView+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+Private.m"; sourceTree = ""; }; + 4C74E38644A984C564C4380EB5BE1664 /* RATreeView+TableViewDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+TableViewDataSource.h"; sourceTree = ""; }; + 4CE6DA15643B6785D4B5B3A52824E89A /* RATreeNodeItem+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeNodeItem+Private.m"; sourceTree = ""; }; + 55552D4FB12A3D47CE37F25AF651D522 /* RATreeNodeController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeController.h; sourceTree = ""; }; + 5DF36A0AF10889CC044AB123D0A86715 /* RABatchChangeEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RABatchChangeEntity.h; sourceTree = ""; }; + 6C57BF69D19521C6F952776EA67CE954 /* RATreeView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = RATreeView.modulemap; sourceTree = ""; }; + 71D77BE634D5D3EB31F7F6C5C407FD2A /* RATreeView+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+Private.h"; sourceTree = ""; }; + 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Pods.modulemap; sourceTree = ""; }; + 7E00A340C461EC7D951E32165A9CA353 /* RATreeNodeItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeItem.h; sourceTree = ""; }; + 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; + 890906899F4C9E1EA0AE49D07C20BA50 /* RATableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATableView.m; sourceTree = ""; }; + 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; + 8F3126C6FE061A509D8C52CCD043E16B /* RABatchChanges.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RABatchChanges.h; sourceTree = ""; }; + 94DE4163379AF490207EFB91B15554B2 /* RATreeView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView-prefix.pch"; sourceTree = ""; }; + 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; + 985C3204B5A3EF6AD48E0972928B2ED4 /* RATreeNodeItem+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeNodeItem+Private.h"; sourceTree = ""; }; + A85C827A8CD0188CE389D8F9B95531A9 /* RATreeView+Enums.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+Enums.m"; sourceTree = ""; }; + AABE1F9C417AF649159212E0BCC6A707 /* RATreeNode_ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNode_ClassExtension.h; sourceTree = ""; }; + AAD6B8F72E9066E5E7DB48F1141E4140 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AD807B25DEF16DEE6413F402AD3952A2 /* RATreeNodeCollectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeNodeCollectionController.h; sourceTree = ""; }; + B101EBF97122815BE461D9D2D4406260 /* RATreeView+TableViewDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+TableViewDelegate.m"; sourceTree = ""; }; + B5D15B2AC16AB9E124AC5851917F212A /* RATreeView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeView.m; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - BEBF82F29986E5697EFFF426BCA7B273 /* RATableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATableView.m; sourceTree = ""; }; - C4FD19695BF11853958BE54B23FF5666 /* RATreeView_ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeView_ClassExtension.h; sourceTree = ""; }; - C7456E5BDD8BD50BD1C0BCF4C3881CEE /* RATreeView+RATreeNodeCollectionControllerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+RATreeNodeCollectionControllerDataSource.h"; sourceTree = ""; }; - CF31BFC1E8E38FB59F4143AB8D1F1AD7 /* RATreeView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeView.h; sourceTree = ""; }; - D1B5868D9084D02B1265952D25FD1E5B /* RABatchChangeEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RABatchChangeEntity.m; sourceTree = ""; }; - D46FEF34C385C58658A53045C01BB4F1 /* RATreeView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView-prefix.pch"; sourceTree = ""; }; - D9ED492BC14C2F11E5ECAB6B03A1F5B7 /* RATreeView+TableViewDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+TableViewDataSource.h"; sourceTree = ""; }; - E883903C871A45492E6E33D90F56D863 /* RATreeView+Enums.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+Enums.m"; sourceTree = ""; }; - F43C53BA636A79E0D279608B5B3B2486 /* RATreeView+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+Private.m"; sourceTree = ""; }; + BCD8172F1A4878A37D6F0F21C278F6B0 /* RABatchChangeEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RABatchChangeEntity.m; sourceTree = ""; }; + C2A90BF37D1CD714D224DCF397AE1FF7 /* RATreeNodeItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeItem.m; sourceTree = ""; }; + C2F3CB5A53A1B8D0C4AEDD1B424BF084 /* RATreeView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeView.h; sourceTree = ""; }; + C32F4441C36613BDD271B08A31449870 /* RATreeView+TableViewDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+TableViewDelegate.h"; sourceTree = ""; }; + CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; + D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; + D75E56C080966DEE8C475059875A676D /* RATreeView+RATreeNodeCollectionControllerDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RATreeView+RATreeNodeCollectionControllerDataSource.m"; sourceTree = ""; }; + D86DB3A145908627641885E95CBED7AD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; + DBFE75FE04F07D32CC21DE48E7881ED3 /* RATreeView_ClassExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATreeView_ClassExtension.h; sourceTree = ""; }; + DEF84FDD6DF41E22D6B81EEC2D7C5B34 /* RATreeView+Enums.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RATreeView+Enums.h"; sourceTree = ""; }; + E539B780066CA524A7E4810F8CADA613 /* RATreeNodeController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeController.m; sourceTree = ""; }; + E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-frameworks.sh"; sourceTree = ""; }; + E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + EB88C914FB0EECF3E5A6B9C49B5CFD2A /* RATreeView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RATreeView.xcconfig; sourceTree = ""; }; + EBA2015B56463FC41CED495F58C19270 /* RATreeNodeCollectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNodeCollectionController.m; sourceTree = ""; }; + EF3FF29CD28EF46C436242A34E3E1D79 /* RATreeNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RATreeNode.m; sourceTree = ""; }; + F868E153BA161BF4E7139864532BC79D /* RABatchChanges.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RABatchChanges.m; sourceTree = ""; }; + FE7F16EBE212ED721864971A48E29999 /* RATableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RATableView.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 4227B7E1AD0D2A653A5D908D4D3E754A /* Frameworks */ = { + BE486A808934639E15919C38C4D5255D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1FAB5791B10B516530A0EDDD83719340 /* Foundation.framework in Frameworks */, + 850A1066C9A661F74FF91C1DEACC0E6C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 523FA085FE10A06A284D47D71DEB7189 /* Frameworks */ = { + D88D998CC94FC669CF20B70BF19C3E1B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 14C09143D7E2F959CF76F81822EC2985 /* Foundation.framework in Frameworks */, + D009078A8DD34C6507C089A6458060CC /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 037C0CA694176A3C0915F62C9D20B3E6 /* Targets Support Files */ = { + 18B42DA272EE492802B2288D66D83C29 /* Products */ = { isa = PBXGroup; children = ( - B3D1D13E0C6553800746CB8FD61CF946 /* Pods */, + AAD6B8F72E9066E5E7DB48F1141E4140 /* Pods.framework */, + 31E2940415B3D4F6E8D5D5A9483BC10A /* RATreeView.framework */, ); - name = "Targets Support Files"; + name = Products; sourceTree = ""; }; - 2B48A7161EB391F55016EDF4BA630CCA /* RATreeView */ = { + 1D53189C7CA741368451028E1916E2B6 /* Private Files */ = { isa = PBXGroup; children = ( - C826E70BA988862D9BE5B9C133E4EAC3 /* RATreeView */, - 92315E5D08CB166A4D5EBEFD35F7E5E7 /* Support Files */, + 5DF36A0AF10889CC044AB123D0A86715 /* RABatchChangeEntity.h */, + BCD8172F1A4878A37D6F0F21C278F6B0 /* RABatchChangeEntity.m */, + 8F3126C6FE061A509D8C52CCD043E16B /* RABatchChanges.h */, + F868E153BA161BF4E7139864532BC79D /* RABatchChanges.m */, + FE7F16EBE212ED721864971A48E29999 /* RATableView.h */, + 890906899F4C9E1EA0AE49D07C20BA50 /* RATableView.m */, + 31C8CC426FB53F52457AE087DC93FE9D /* RATreeNode.h */, + EF3FF29CD28EF46C436242A34E3E1D79 /* RATreeNode.m */, + AABE1F9C417AF649159212E0BCC6A707 /* RATreeNode_ClassExtension.h */, + AD807B25DEF16DEE6413F402AD3952A2 /* RATreeNodeCollectionController.h */, + EBA2015B56463FC41CED495F58C19270 /* RATreeNodeCollectionController.m */, + 55552D4FB12A3D47CE37F25AF651D522 /* RATreeNodeController.h */, + E539B780066CA524A7E4810F8CADA613 /* RATreeNodeController.m */, + 7E00A340C461EC7D951E32165A9CA353 /* RATreeNodeItem.h */, + C2A90BF37D1CD714D224DCF397AE1FF7 /* RATreeNodeItem.m */, + 13935C82B7F1DCDD108820B7360CD302 /* RATreeNodeItem+ClassExtension.h */, + 985C3204B5A3EF6AD48E0972928B2ED4 /* RATreeNodeItem+Private.h */, + 4CE6DA15643B6785D4B5B3A52824E89A /* RATreeNodeItem+Private.m */, + DEF84FDD6DF41E22D6B81EEC2D7C5B34 /* RATreeView+Enums.h */, + A85C827A8CD0188CE389D8F9B95531A9 /* RATreeView+Enums.m */, + 71D77BE634D5D3EB31F7F6C5C407FD2A /* RATreeView+Private.h */, + 405F4C7D8E72F43FD6B96ED2A2456DFA /* RATreeView+Private.m */, + 3E1B9CD6FD01A21468000EC59CC89833 /* RATreeView+RATreeNodeCollectionControllerDataSource.h */, + D75E56C080966DEE8C475059875A676D /* RATreeView+RATreeNodeCollectionControllerDataSource.m */, + 4C74E38644A984C564C4380EB5BE1664 /* RATreeView+TableViewDataSource.h */, + 3E9B10A555BC021E092656217C09C067 /* RATreeView+TableViewDataSource.m */, + C32F4441C36613BDD271B08A31449870 /* RATreeView+TableViewDelegate.h */, + B101EBF97122815BE461D9D2D4406260 /* RATreeView+TableViewDelegate.m */, + DBFE75FE04F07D32CC21DE48E7881ED3 /* RATreeView_ClassExtension.h */, ); - name = RATreeView; - path = ../..; + path = "Private Files"; sourceTree = ""; }; 3746926E44AFC6182DEDEAB7DCF17CC4 /* Development Pods */ = { isa = PBXGroup; children = ( - 2B48A7161EB391F55016EDF4BA630CCA /* RATreeView */, + 63C9749DB51AECE106925F47F7E0CF71 /* RATreeView */, ); name = "Development Pods"; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 4DFFC4A636251349CE29E5C750CE5EA6 /* RATreeView */ = { isa = PBXGroup; children = ( - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, - 3746926E44AFC6182DEDEAB7DCF17CC4 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - 833BCABBBFFA6EE4CAC6C830A5B180F8 /* Products */, - 037C0CA694176A3C0915F62C9D20B3E6 /* Targets Support Files */, + 700B44DD39FC9FD9CEED0F80163C4313 /* RATreeView */, ); + path = RATreeView; sourceTree = ""; }; - 833BCABBBFFA6EE4CAC6C830A5B180F8 /* Products */ = { + 63C9749DB51AECE106925F47F7E0CF71 /* RATreeView */ = { isa = PBXGroup; children = ( - B5ADAE080A1AA56B5023C35F5BA585E5 /* libPods.a */, - 176D26785433B198BA905BE807810538 /* libRATreeView.a */, + 4DFFC4A636251349CE29E5C750CE5EA6 /* RATreeView */, + 9F6D8081674209988202E918E4948CF0 /* Support Files */, ); - name = Products; + name = RATreeView; + path = ../..; sourceTree = ""; }; - 871C6A4B31FD17240FAB60C353D891AC /* Private Files */ = { + 700B44DD39FC9FD9CEED0F80163C4313 /* RATreeView */ = { isa = PBXGroup; children = ( - 0BDF014D376B58C6180A1E350ED6E2A7 /* RABatchChangeEntity.h */, - D1B5868D9084D02B1265952D25FD1E5B /* RABatchChangeEntity.m */, - 96CDDD7B7E5C6458D5A2B8505E90C928 /* RABatchChanges.h */, - 66F02ADC217EDE8153C0D2B38D13E364 /* RABatchChanges.m */, - 3731E0FED6AF9FFE896DD5A3FE3D111B /* RATableView.h */, - BEBF82F29986E5697EFFF426BCA7B273 /* RATableView.m */, - 85003999AB47D53D6FA233EEC6792720 /* RATreeNode.h */, - 1ADF7E002A450DA5DA1FF89647836628 /* RATreeNode.m */, - 05198226C93EBA5E86358DF2CCCACEE0 /* RATreeNode_ClassExtension.h */, - 562CD27595CFD6628DB3E118A41DBA8B /* RATreeNodeCollectionController.h */, - 94CD2D982769D68D3076E890638580CB /* RATreeNodeCollectionController.m */, - 0B19E44199E5675025D42AAD9721810C /* RATreeNodeController.h */, - 2DDEE82D0C602BCF15DBB2B3CAE319AC /* RATreeNodeController.m */, - 086E403EB29B30E8D11642374B65950B /* RATreeNodeItem.h */, - 51AA34AF6B31A849FF408F6C99D967F5 /* RATreeNodeItem.m */, - 96589336D8CD5F9CCA5F2C90E7AA4930 /* RATreeNodeItem+ClassExtension.h */, - 964B93D11F6ED5F10F147D3FEB178541 /* RATreeNodeItem+Private.h */, - 8BD326E9DF5CF01E2898B7C5DFD5157D /* RATreeNodeItem+Private.m */, - 5388C521A2366BE48C916AE75EB7D77C /* RATreeView+Enums.h */, - E883903C871A45492E6E33D90F56D863 /* RATreeView+Enums.m */, - 610A8407CD8356EDF5D4EF828203AD85 /* RATreeView+Private.h */, - F43C53BA636A79E0D279608B5B3B2486 /* RATreeView+Private.m */, - C7456E5BDD8BD50BD1C0BCF4C3881CEE /* RATreeView+RATreeNodeCollectionControllerDataSource.h */, - 2E36CE24A6FD581421385BF25655E8AC /* RATreeView+RATreeNodeCollectionControllerDataSource.m */, - D9ED492BC14C2F11E5ECAB6B03A1F5B7 /* RATreeView+TableViewDataSource.h */, - 93B2C65D2B7B37352A62A92C3D806C87 /* RATreeView+TableViewDataSource.m */, - 04B9D636924665E035BFBA9BE0DE77EE /* RATreeView+TableViewDelegate.h */, - 95D388B57FEBE70FB0BB62052D7A678A /* RATreeView+TableViewDelegate.m */, - C4FD19695BF11853958BE54B23FF5666 /* RATreeView_ClassExtension.h */, + C2F3CB5A53A1B8D0C4AEDD1B424BF084 /* RATreeView.h */, + B5D15B2AC16AB9E124AC5851917F212A /* RATreeView.m */, + 1D53189C7CA741368451028E1916E2B6 /* Private Files */, ); - path = "Private Files"; + path = RATreeView; sourceTree = ""; }; - 92315E5D08CB166A4D5EBEFD35F7E5E7 /* Support Files */ = { + 75D98FF52E597A11900E131B6C4E1ADA /* Pods */ = { isa = PBXGroup; children = ( - 2C933AB72110A40391AD84A15EA5059F /* RATreeView.xcconfig */, - 23929649F58A4742D5E2E4A45AC7A8E1 /* RATreeView-dummy.m */, - D46FEF34C385C58658A53045C01BB4F1 /* RATreeView-prefix.pch */, + E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */, + 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */, + D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */, + 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */, + 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */, + E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */, + CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */, + 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */, + 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */, + DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */, ); - name = "Support Files"; - path = "Examples/Pods/Target Support Files/RATreeView"; + name = Pods; + path = "Target Support Files/Pods"; sourceTree = ""; }; - B3D1D13E0C6553800746CB8FD61CF946 /* Pods */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - 37DB56D75062CC75FCB0966E1C6E8A8E /* Pods-acknowledgements.markdown */, - 10834806BD7B412BC24F347361FA2C8E /* Pods-acknowledgements.plist */, - 272643F56613CA0D336AE3DBF19DC404 /* Pods-dummy.m */, - 6911BECA35E7518D864239B7E898EEF3 /* Pods-frameworks.sh */, - A1A36D34413696BE466E2CA0AFF194DA /* Pods-resources.sh */, - 4E762F23EC34ED4A6FF3312D84E33A40 /* Pods.debug.xcconfig */, - 98C98CDFB3F20F2925F6CD1F141BB14F /* Pods.release.xcconfig */, + BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, + 3746926E44AFC6182DEDEAB7DCF17CC4 /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + 18B42DA272EE492802B2288D66D83C29 /* Products */, + B7B80995527643776607AFFA75B91E24 /* Targets Support Files */, ); - name = Pods; - path = "Target Support Files/Pods"; sourceTree = ""; }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + 9F6D8081674209988202E918E4948CF0 /* Support Files */ = { isa = PBXGroup; children = ( - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, + D86DB3A145908627641885E95CBED7AD /* Info.plist */, + 6C57BF69D19521C6F952776EA67CE954 /* RATreeView.modulemap */, + EB88C914FB0EECF3E5A6B9C49B5CFD2A /* RATreeView.xcconfig */, + 2C73F9F97D5D43569E410783BE325DA5 /* RATreeView-dummy.m */, + 94DE4163379AF490207EFB91B15554B2 /* RATreeView-prefix.pch */, + 07DB13009B628400D2A74A618FC72519 /* RATreeView-umbrella.h */, ); - name = Frameworks; + name = "Support Files"; + path = "Examples/Pods/Target Support Files/RATreeView"; sourceTree = ""; }; - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { + B7B80995527643776607AFFA75B91E24 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, + 75D98FF52E597A11900E131B6C4E1ADA /* Pods */, ); - name = iOS; + name = "Targets Support Files"; sourceTree = ""; }; - C826E70BA988862D9BE5B9C133E4EAC3 /* RATreeView */ = { + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - D1D38FA3721C6994BDE4B0D8F0B17710 /* RATreeView */, + BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, ); - path = RATreeView; + name = Frameworks; sourceTree = ""; }; - D1D38FA3721C6994BDE4B0D8F0B17710 /* RATreeView */ = { + BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { isa = PBXGroup; children = ( - CF31BFC1E8E38FB59F4143AB8D1F1AD7 /* RATreeView.h */, - 2666DAEEC0042D8E8C5DA705574DF79D /* RATreeView.m */, - 871C6A4B31FD17240FAB60C353D891AC /* Private Files */, + 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, ); - path = RATreeView; + name = iOS; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 82E5B2AA2DF921079D0638DF82E9758B /* Headers */ = { + 7E5EDD6C8F7DE8CBA8D14AA58DAF7026 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C12803DEEF5E36FA868DA7512151D772 /* Pods-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1A7CC41C213CC4541F4D6BB93789BEA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 43F5D3AF6C9A0D30ABA054B7F4B6FDAE /* RABatchChangeEntity.h in Headers */, - 3337CD34BCD0B1121428562A35864001 /* RABatchChanges.h in Headers */, - 7262E25B7DC01B53DDA4C73ADAF0B7CD /* RATableView.h in Headers */, - E36F28894EE0F3A4D7E8A5F2D978D158 /* RATreeNode.h in Headers */, - 2250144BD49DDB286168A2BF1D2F3AC5 /* RATreeNode_ClassExtension.h in Headers */, - CE2223A7C5869D8419357A3E41068623 /* RATreeNodeCollectionController.h in Headers */, - A21360BB0A26017EB7712A825A9AC636 /* RATreeNodeController.h in Headers */, - 77B20F1118DD51B2A55037F501F58484 /* RATreeNodeItem+ClassExtension.h in Headers */, - 89EA0DE49183B350CAD3F57531104624 /* RATreeNodeItem+Private.h in Headers */, - 7EA2B1DA87A7F29E676ED6DA52D009F5 /* RATreeNodeItem.h in Headers */, - 9A1AD67963597E9ED606192D39AB8948 /* RATreeView+Enums.h in Headers */, - A8DE8ED62D83CF95AD3A59B3D0EC1D2D /* RATreeView+Private.h in Headers */, - 050D4D218DB925B3664B90B7475F5717 /* RATreeView+RATreeNodeCollectionControllerDataSource.h in Headers */, - 660C53010C9530FC704D0B4B788EAB8F /* RATreeView+TableViewDataSource.h in Headers */, - 002C7BE55E62099BA15E4182EC49D244 /* RATreeView+TableViewDelegate.h in Headers */, - 73B69B00D672A0544C6B4F7481335795 /* RATreeView.h in Headers */, - C825E0A802725BB3526528D0B5BD4D29 /* RATreeView_ClassExtension.h in Headers */, + BAF9982EB2982DD5C29E82B7417F9931 /* RABatchChangeEntity.h in Headers */, + 1F0D0384DCEFEE4070CCF69422F620DC /* RABatchChanges.h in Headers */, + F014F76DC2CDB9B76E6F9337EE5580FD /* RATableView.h in Headers */, + 176B563EF770B02ACC749D0E13AF5FC3 /* RATreeNode.h in Headers */, + 1216D27CD152906D68C239833DF8F422 /* RATreeNode_ClassExtension.h in Headers */, + B6C74E5447C8740B25ED487F6EFC4997 /* RATreeNodeCollectionController.h in Headers */, + D6A9E9B60AEC47623F580F84E14C0333 /* RATreeNodeController.h in Headers */, + 1E4303F88FA67B8885B3022287298737 /* RATreeNodeItem+ClassExtension.h in Headers */, + 92FB102FBDD40FDDB6E2D4C3BA122DE8 /* RATreeNodeItem+Private.h in Headers */, + EEAA08677F22DF86575D91185D12ABDD /* RATreeNodeItem.h in Headers */, + DAE0E31AA40EC062646486A0CD87D478 /* RATreeView+Enums.h in Headers */, + 5DA7BBA255ABE9DCA4BEB794D7926917 /* RATreeView+Private.h in Headers */, + 52E652126D4A3229AD477F17846D77F4 /* RATreeView+RATreeNodeCollectionControllerDataSource.h in Headers */, + 82FB60E264053E9304AEBEB58EC8FC7C /* RATreeView+TableViewDataSource.h in Headers */, + AC6C53F9BF1046D5D80829ECA82DD37D /* RATreeView+TableViewDelegate.h in Headers */, + E70FEAD74319EBA3CE1B8A0C8373E808 /* RATreeView-umbrella.h in Headers */, + D3F8C4A119DC249499C4C9D8664F043B /* RATreeView.h in Headers */, + 4DF535F83A58E90B7A817698B670FBAC /* RATreeView_ClassExtension.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - ABC4D43D1D55F92917590237397E800A /* RATreeView */ = { + 84CD3F68E3E20B0E4B3BBED1314179C4 /* Pods */ = { isa = PBXNativeTarget; - buildConfigurationList = 3149A1BD0DF2B3828C8574E3764BAC78 /* Build configuration list for PBXNativeTarget "RATreeView" */; + buildConfigurationList = 55A43BEAA9EA0E5DB09714C9D7A6DF26 /* Build configuration list for PBXNativeTarget "Pods" */; buildPhases = ( - C8AA83EA6764877989EA77F61DCE9DBF /* Sources */, - 523FA085FE10A06A284D47D71DEB7189 /* Frameworks */, - 82E5B2AA2DF921079D0638DF82E9758B /* Headers */, + 873170A96152FCB2C81AA946A692CC60 /* Sources */, + BE486A808934639E15919C38C4D5255D /* Frameworks */, + 7E5EDD6C8F7DE8CBA8D14AA58DAF7026 /* Headers */, ); buildRules = ( ); dependencies = ( + 7550F5BA5AE0E0A78B8B14EFD56BF2D2 /* PBXTargetDependency */, ); - name = RATreeView; - productName = RATreeView; - productReference = 176D26785433B198BA905BE807810538 /* libRATreeView.a */; - productType = "com.apple.product-type.library.static"; + name = Pods; + productName = Pods; + productReference = AAD6B8F72E9066E5E7DB48F1141E4140 /* Pods.framework */; + productType = "com.apple.product-type.framework"; }; - C74C237FBD8C1E89576F313D34D14BF0 /* Pods */ = { + 910FF0DC6676CD6DAC2B72616854407B /* RATreeView */ = { isa = PBXNativeTarget; - buildConfigurationList = E04D70C62BD1D8C444550749EF22C19D /* Build configuration list for PBXNativeTarget "Pods" */; + buildConfigurationList = 4181D3A18E678FFDAB5F4BA19BE7A6D5 /* Build configuration list for PBXNativeTarget "RATreeView" */; buildPhases = ( - 61DE6D187A45E83241B991F9D0326B9A /* Sources */, - 4227B7E1AD0D2A653A5D908D4D3E754A /* Frameworks */, + 492C72999B05AD1DC5EE0968E0FC7FEF /* Sources */, + D88D998CC94FC669CF20B70BF19C3E1B /* Frameworks */, + C1A7CC41C213CC4541F4D6BB93789BEA /* Headers */, ); buildRules = ( ); dependencies = ( - C733DDDE04283FF11DD5FC63875CD088 /* PBXTargetDependency */, ); - name = Pods; - productName = Pods; - productReference = B5ADAE080A1AA56B5023C35F5BA585E5 /* libPods.a */; - productType = "com.apple.product-type.library.static"; + name = RATreeView; + productName = RATreeView; + productReference = 31E2940415B3D4F6E8D5D5A9483BC10A /* RATreeView.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -345,77 +369,59 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 833BCABBBFFA6EE4CAC6C830A5B180F8 /* Products */; + productRefGroup = 18B42DA272EE492802B2288D66D83C29 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - C74C237FBD8C1E89576F313D34D14BF0 /* Pods */, - ABC4D43D1D55F92917590237397E800A /* RATreeView */, + 84CD3F68E3E20B0E4B3BBED1314179C4 /* Pods */, + 910FF0DC6676CD6DAC2B72616854407B /* RATreeView */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 61DE6D187A45E83241B991F9D0326B9A /* Sources */ = { + 492C72999B05AD1DC5EE0968E0FC7FEF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3E1555615614F3F47E366292CF0AB554 /* Pods-dummy.m in Sources */, + 6CE6C50EA00E00A829BCE7E37DFA13D0 /* RABatchChangeEntity.m in Sources */, + 75254EA03309AD8F11A39BF8323DBB71 /* RABatchChanges.m in Sources */, + EB058C76595DA8109C32F75D8461893E /* RATableView.m in Sources */, + 686C5BD36C633DACB4C83065C79E1557 /* RATreeNode.m in Sources */, + 00DA7E3A97B00A367B1B81543715DA0D /* RATreeNodeCollectionController.m in Sources */, + EABFFC06B1DF0830C02C24588EDCC3CE /* RATreeNodeController.m in Sources */, + 35B0D6D7E5E986F7468B6BBBB291001E /* RATreeNodeItem+Private.m in Sources */, + 4C349FA8099E64F3C2D7654555485605 /* RATreeNodeItem.m in Sources */, + 1A36379B33C24C5A1B6896B7DF139638 /* RATreeView+Enums.m in Sources */, + 5E462D78196D90B2CB7BCEA2001F8B93 /* RATreeView+Private.m in Sources */, + 19795CDC9861001FD21164B38D609913 /* RATreeView+RATreeNodeCollectionControllerDataSource.m in Sources */, + 70075A6EF960F2C2ED1F5AD1C48873E3 /* RATreeView+TableViewDataSource.m in Sources */, + 128EB21304B70992C049742318679640 /* RATreeView+TableViewDelegate.m in Sources */, + BFFA08438CF972A7E6DFD24180F3DBB6 /* RATreeView-dummy.m in Sources */, + 536EACE24CA6E6829A6A932B28B9CFDA /* RATreeView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C8AA83EA6764877989EA77F61DCE9DBF /* Sources */ = { + 873170A96152FCB2C81AA946A692CC60 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 681B38315176F4B56F8E050DF74AD1EC /* RABatchChangeEntity.m in Sources */, - 82E679155433F86B95A5F65B280793F5 /* RABatchChanges.m in Sources */, - 81E48AB669B577AE75444DFA4343CDA9 /* RATableView.m in Sources */, - 6B73751D575FCCADB761BB071D02309A /* RATreeNode.m in Sources */, - 808DA83C4D3F799890E68C3CCCF9A084 /* RATreeNodeCollectionController.m in Sources */, - 1AF671F62369AE01D998C798902953D5 /* RATreeNodeController.m in Sources */, - 8018EA34D7988B0A30A2DAA42D072C02 /* RATreeNodeItem+Private.m in Sources */, - 91DF54B4BED3FDB20C1BE32D9F9269E6 /* RATreeNodeItem.m in Sources */, - CE3AFBB633A3C17287FDEF4BF3EB92E3 /* RATreeView+Enums.m in Sources */, - 3B0B1AD5674CF89586B1E1C7651C35C2 /* RATreeView+Private.m in Sources */, - 44670F49E8F83BD0F4DCCD442C2384A8 /* RATreeView+RATreeNodeCollectionControllerDataSource.m in Sources */, - 7A759EAE5CACB46E31FAE8810AF8D854 /* RATreeView+TableViewDataSource.m in Sources */, - 5325937AF7A4223BFAF499025A460A8E /* RATreeView+TableViewDelegate.m in Sources */, - 708A098B34342E906FB4F82C586EAB39 /* RATreeView-dummy.m in Sources */, - FF72C3561F2762EBA9243B5C856325DF /* RATreeView.m in Sources */, + 2F1FA4578DEBD8B7D434CFDF9EE2E800 /* Pods-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C733DDDE04283FF11DD5FC63875CD088 /* PBXTargetDependency */ = { + 7550F5BA5AE0E0A78B8B14EFD56BF2D2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = RATreeView; - target = ABC4D43D1D55F92917590237397E800A /* RATreeView */; - targetProxy = 1369162B6AE1D64C82AF429A2885C219 /* PBXContainerItemProxy */; + target = 910FF0DC6676CD6DAC2B72616854407B /* RATreeView */; + targetProxy = 49E58D8E6203CA02EF9FE59BDC032671 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 04E4AEBE5DF53DF5B206BC579CB6F6F7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2C933AB72110A40391AD84A15EA5059F /* RATreeView.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/RATreeView/RATreeView-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; 140FEB760615177BA12EC86473F44F65 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -450,38 +456,60 @@ }; name = Release; }; - 2F5E4E3B7973049BA56DD6D535585046 /* Debug */ = { + 40377A702A480CD8CFADD68FB35CD7E1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2C933AB72110A40391AD84A15EA5059F /* RATreeView.xcconfig */; + baseConfigurationReference = EB88C914FB0EECF3E5A6B9C49B5CFD2A /* RATreeView.xcconfig */; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/RATreeView/RATreeView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RATreeView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/RATreeView/RATreeView.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = RATreeView; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 3E12389F7C581FC118DA0CBBEC4D189E /* Debug */ = { + 7F413EA9B4F1E0259A2DE4B64AD30EEF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4E762F23EC34ED4A6FF3312D84E33A40 /* Pods.debug.xcconfig */; + baseConfigurationReference = 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; + INFOPLIST_FILE = "Target Support Files/Pods/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = Pods; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; @@ -524,20 +552,60 @@ }; name = Debug; }; - E8FD233BF6E04BFA4C01C8DBC68EFAF6 /* Release */ = { + E2501049A50C1C636627049912D6E598 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EB88C914FB0EECF3E5A6B9C49B5CFD2A /* RATreeView.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/RATreeView/RATreeView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RATreeView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/RATreeView/RATreeView.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = RATreeView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F96863C7B86C0BCB64247C81CBBBC611 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 98C98CDFB3F20F2925F6CD1F141BB14F /* Pods.release.xcconfig */; + baseConfigurationReference = DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; + INFOPLIST_FILE = "Target Support Files/Pods/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = Pods; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; @@ -553,20 +621,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3149A1BD0DF2B3828C8574E3764BAC78 /* Build configuration list for PBXNativeTarget "RATreeView" */ = { + 4181D3A18E678FFDAB5F4BA19BE7A6D5 /* Build configuration list for PBXNativeTarget "RATreeView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2F5E4E3B7973049BA56DD6D535585046 /* Debug */, - 04E4AEBE5DF53DF5B206BC579CB6F6F7 /* Release */, + E2501049A50C1C636627049912D6E598 /* Debug */, + 40377A702A480CD8CFADD68FB35CD7E1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E04D70C62BD1D8C444550749EF22C19D /* Build configuration list for PBXNativeTarget "Pods" */ = { + 55A43BEAA9EA0E5DB09714C9D7A6DF26 /* Build configuration list for PBXNativeTarget "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3E12389F7C581FC118DA0CBBEC4D189E /* Debug */, - E8FD233BF6E04BFA4C01C8DBC68EFAF6 /* Release */, + 7F413EA9B4F1E0259A2DE4B64AD30EEF /* Debug */, + F96863C7B86C0BCB64247C81CBBBC611 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Examples/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RATreeView.xcscheme b/Examples/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RATreeView.xcscheme index d70d276..54586ec 100644 --- a/Examples/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RATreeView.xcscheme +++ b/Examples/Pods/Pods.xcodeproj/xcshareddata/xcschemes/RATreeView.xcscheme @@ -14,10 +14,10 @@ buildForArchiving = "YES"> + BuildableName = 'RATreeView.framework'> diff --git a/Examples/Pods/Target Support Files/Pods/Info.plist b/Examples/Pods/Target Support Files/Pods/Info.plist new file mode 100644 index 0000000..6974542 --- /dev/null +++ b/Examples/Pods/Target Support Files/Pods/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Examples/Pods/Target Support Files/Pods/Pods-frameworks.sh b/Examples/Pods/Target Support Files/Pods/Pods-frameworks.sh index 6f76344..43e1804 100755 --- a/Examples/Pods/Target Support Files/Pods/Pods-frameworks.sh +++ b/Examples/Pods/Target Support Files/Pods/Pods-frameworks.sh @@ -82,3 +82,10 @@ strip_invalid_archs() { fi } + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "Pods/RATreeView.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "Pods/RATreeView.framework" +fi diff --git a/Examples/Pods/Target Support Files/Pods/Pods-umbrella.h b/Examples/Pods/Target Support Files/Pods/Pods-umbrella.h new file mode 100644 index 0000000..21dcfd2 --- /dev/null +++ b/Examples/Pods/Target Support Files/Pods/Pods-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double PodsVersionNumber; +FOUNDATION_EXPORT const unsigned char PodsVersionString[]; + diff --git a/Examples/Pods/Target Support Files/Pods/Pods.debug.xcconfig b/Examples/Pods/Target Support Files/Pods/Pods.debug.xcconfig index 578186f..a8d0fa3 100644 --- a/Examples/Pods/Target Support Files/Pods/Pods.debug.xcconfig +++ b/Examples/Pods/Target Support Files/Pods/Pods.debug.xcconfig @@ -1,5 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RATreeView" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/RATreeView" -OTHER_LDFLAGS = $(inherited) -ObjC -l"RATreeView" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/RATreeView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "RATreeView" +PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Examples/Pods/Target Support Files/Pods/Pods.modulemap b/Examples/Pods/Target Support Files/Pods/Pods.modulemap new file mode 100644 index 0000000..8413413 --- /dev/null +++ b/Examples/Pods/Target Support Files/Pods/Pods.modulemap @@ -0,0 +1,6 @@ +framework module Pods { + umbrella header "Pods-umbrella.h" + + export * + module * { export * } +} diff --git a/Examples/Pods/Target Support Files/Pods/Pods.release.xcconfig b/Examples/Pods/Target Support Files/Pods/Pods.release.xcconfig index 578186f..a8d0fa3 100644 --- a/Examples/Pods/Target Support Files/Pods/Pods.release.xcconfig +++ b/Examples/Pods/Target Support Files/Pods/Pods.release.xcconfig @@ -1,5 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RATreeView" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/RATreeView" -OTHER_LDFLAGS = $(inherited) -ObjC -l"RATreeView" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/RATreeView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "RATreeView" +PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Examples/Pods/Target Support Files/RATreeView/Info.plist b/Examples/Pods/Target Support Files/RATreeView/Info.plist new file mode 100644 index 0000000..c2fdb7a --- /dev/null +++ b/Examples/Pods/Target Support Files/RATreeView/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.0.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Examples/Pods/Target Support Files/RATreeView/RATreeView-umbrella.h b/Examples/Pods/Target Support Files/RATreeView/RATreeView-umbrella.h new file mode 100644 index 0000000..f7968ba --- /dev/null +++ b/Examples/Pods/Target Support Files/RATreeView/RATreeView-umbrella.h @@ -0,0 +1,7 @@ +#import + +#import "RATreeView.h" + +FOUNDATION_EXPORT double RATreeViewVersionNumber; +FOUNDATION_EXPORT const unsigned char RATreeViewVersionString[]; + diff --git a/Examples/Pods/Target Support Files/RATreeView/RATreeView.modulemap b/Examples/Pods/Target Support Files/RATreeView/RATreeView.modulemap new file mode 100644 index 0000000..67acd57 --- /dev/null +++ b/Examples/Pods/Target Support Files/RATreeView/RATreeView.modulemap @@ -0,0 +1,6 @@ +framework module RATreeView { + umbrella header "RATreeView-umbrella.h" + + export * + module * { export * } +} diff --git a/Examples/Pods/Target Support Files/RATreeView/RATreeView.xcconfig b/Examples/Pods/Target Support Files/RATreeView/RATreeView.xcconfig index 290e6ad..4120123 100644 --- a/Examples/Pods/Target Support Files/RATreeView/RATreeView.xcconfig +++ b/Examples/Pods/Target Support Files/RATreeView/RATreeView.xcconfig @@ -1,4 +1,4 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RATreeView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/RATreeView" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RATreeView" "${PODS_ROOT}/Headers/Public" PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Examples/RATreeViewBasicExampleSwift/AppDelegate.swift b/Examples/RATreeViewBasicExampleSwift/AppDelegate.swift new file mode 100644 index 0000000..34b39ec --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/AppDelegate.swift @@ -0,0 +1,25 @@ +// +// AppDelegate.swift +// RATreeViewBasicExampleSwift +// +// Created by Rafal Augustyniak on 21/11/15. +// Copyright © 2015 com.Augustyniak. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + let navigationController = UINavigationController(rootViewController: TreeViewController()) + window = UIWindow(frame: UIScreen.mainScreen().bounds) + window?.rootViewController = navigationController; + window?.makeKeyAndVisible() + return true + } + +} + diff --git a/Examples/RATreeViewBasicExampleSwift/Assets.xcassets/AppIcon.appiconset/Contents.json b/Examples/RATreeViewBasicExampleSwift/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/RATreeViewBasicExampleSwift/Base.lproj/LaunchScreen.storyboard b/Examples/RATreeViewBasicExampleSwift/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..2e721e1 --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/RATreeViewBasicExampleSwift/Base.lproj/Main.storyboard b/Examples/RATreeViewBasicExampleSwift/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b3b5a78 --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/Base.lproj/Main.storyboard @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/RATreeViewBasicExampleSwift/DataObject.swift b/Examples/RATreeViewBasicExampleSwift/DataObject.swift new file mode 100644 index 0000000..77aa0fc --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/DataObject.swift @@ -0,0 +1,33 @@ +// +// DataObject.swift +// RATreeViewExamples +// +// Created by Rafal Augustyniak on 22/11/15. +// Copyright © 2015 com.Augustyniak. All rights reserved. +// + +import Foundation + + +class DataObject +{ + let name : String + private(set) var children : [DataObject] + + init(name : String, children: [DataObject]) { + self.name = name + self.children = children + } + + convenience init(name : String) { + self.init(name: name, children: [DataObject]()) + } + + func addChild(child : DataObject) { + self.children.append(child) + } + + func removeChild(child : DataObject) { + self.children = self.children.filter( {$0 !== child}) + } +} \ No newline at end of file diff --git a/Examples/RATreeViewBasicExampleSwift/Info.plist b/Examples/RATreeViewBasicExampleSwift/Info.plist new file mode 100644 index 0000000..3f2cd1b --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarTintParameters + + UINavigationBar + + Style + UIBarStyleDefault + Translucent + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.swift b/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.swift new file mode 100644 index 0000000..b274198 --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.swift @@ -0,0 +1,57 @@ +// +// TreeTableViewCell.swift +// RATreeViewExamples +// +// Created by Rafal Augustyniak on 22/11/15. +// Copyright © 2015 com.Augustyniak. All rights reserved. +// + +import UIKit + +class TreeTableViewCell : UITableViewCell { + + @IBOutlet private weak var additionalButton: UIButton! + @IBOutlet private weak var detailsLabel: UILabel! + @IBOutlet private weak var customTitleLabel: UILabel! + + private var additionalButtonHidden : Bool { + get { + return additionalButton.hidden; + } + set { + additionalButton.hidden = newValue; + } + } + + override func awakeFromNib() { + selectedBackgroundView? = UIView.init() + selectedBackgroundView?.backgroundColor = UIColor.clearColor() + } + + var additionButtonActionBlock : (TreeTableViewCell -> Void)?; + + func setup(withTitle title: String, detailsText: String, level : Int, additionalButtonHidden: Bool) { + customTitleLabel.text = title + detailsLabel.text = detailsText + self.additionalButtonHidden = additionalButtonHidden + + if level == 0 { + self.backgroundColor? = UIColor.init(red: 247.0/255.0, green: 247.0/255.0, blue: 247.0/255.0, alpha: 1.0) + } else if level == 1 { + self.backgroundColor? = UIColor.init(red: 209.0/255.0, green: 238.0/255.0, blue: 252.0/255.0, alpha: 1.0) + } else { + self.backgroundColor? = UIColor.init(red: 224.0/255.0, green: 248.0/255.0, blue: 216.0/255.0, alpha: 1.0) + } + + let left = 11.0 + 20.0 * CGFloat(level) + self.customTitleLabel.frame.origin.x = left + self.detailsLabel.frame.origin.x = left + } + + func additionButtonTapped(sender : AnyObject) -> Void { + if let action = additionButtonActionBlock { + action(self) + } + } + +} \ No newline at end of file diff --git a/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.xib b/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.xib new file mode 100644 index 0000000..d9649e5 --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/TreeTableViewCell.xib @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/RATreeViewBasicExampleSwift/TreeViewController.swift b/Examples/RATreeViewBasicExampleSwift/TreeViewController.swift new file mode 100644 index 0000000..7787e3a --- /dev/null +++ b/Examples/RATreeViewBasicExampleSwift/TreeViewController.swift @@ -0,0 +1,166 @@ +// +// TreeViewController.swift +// RATreeViewExamples +// +// Created by Rafal Augustyniak on 21/11/15. +// Copyright © 2015 com.Augustyniak. All rights reserved. +// + + +import UIKit +import RATreeView + +class TreeViewController: UIViewController, RATreeViewDelegate, RATreeViewDataSource { + + var treeView : RATreeView! + var data : [DataObject] + var editButton : UIBarButtonItem! + + convenience init() { + self.init(nibName : nil, bundle: nil) + } + + override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { + data = TreeViewController.commonInit() + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) + } + + required init?(coder aDecoder: NSCoder) { + data = TreeViewController.commonInit() + super.init(coder: aDecoder) + } + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = UIColor.whiteColor() + + title = "Things" + setupTreeView() + updateNavigationBarButtons() + } + + func setupTreeView() -> Void { + treeView = RATreeView(frame: view.bounds) + treeView.registerNib(UINib.init(nibName: "TreeTableViewCell", bundle: nil), forCellReuseIdentifier: "TreeTableViewCell") + treeView.autoresizingMask = UIViewAutoresizing(rawValue:UIViewAutoresizing.FlexibleWidth.rawValue | UIViewAutoresizing.FlexibleHeight.rawValue) + treeView.delegate = self; + treeView.dataSource = self; + treeView.treeFooterView = UIView() + treeView.backgroundColor = UIColor.clearColor() + view.addSubview(treeView) + } + + func updateNavigationBarButtons() -> Void { + let systemItem = treeView.editing ? UIBarButtonSystemItem.Done : UIBarButtonSystemItem.Edit; + self.editButton = UIBarButtonItem.init(barButtonSystemItem: systemItem, target: self, action: "editButtonTapped:") + self.navigationItem.rightBarButtonItem = self.editButton; + } + + func editButtonTapped(sender : AnyObject) -> Void { + treeView.setEditing(!treeView.editing, animated: true) + updateNavigationBarButtons() + } + + + //MARK: RATreeView data source + + func treeView(treeView: RATreeView, numberOfChildrenOfItem item: AnyObject?) -> Int { + if let item = item as? DataObject { + return item.children.count + } else { + return self.data.count + } + } + + func treeView(treeView: RATreeView, child index: Int, ofItem item: AnyObject?) -> AnyObject { + if let item = item as? DataObject { + return item.children[index] + } else { + return data[index] as AnyObject + } + } + + func treeView(treeView: RATreeView, cellForItem item: AnyObject?) -> UITableViewCell { + let cell = treeView.dequeueReusableCellWithIdentifier("TreeTableViewCell") as! TreeTableViewCell + let item = item as! DataObject + + let level = treeView.levelForCellForItem(item) + let detailsText = "Number of children \(item.children.count)" + cell.selectionStyle = .None + cell.setup(withTitle: item.name, detailsText: detailsText, level: level, additionalButtonHidden: false) + cell.additionButtonActionBlock = { [weak treeView] cell in + guard let treeView = treeView else { + return; + } + let item = treeView.itemForCell(cell) as! DataObject + let newItem = DataObject(name: "Added value") + item.addChild(newItem) + treeView.insertItemsAtIndexes(NSIndexSet.init(index: 0), inParent: item, withAnimation: RATreeViewRowAnimationNone); + treeView.reloadRowsForItems([item], withRowAnimation: RATreeViewRowAnimationNone) + } + return cell + } + + //MARK: RATreeView delegate + + func treeView(treeView: RATreeView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowForItem item: AnyObject) { + guard editingStyle == .Delete else { return; } + let item = item as! DataObject + let parent = treeView.parentForItem(item) as? DataObject + + var index = 0 + if let parent = parent { + parent.children.indexOf({ dataObject in + return dataObject === item + })! + parent.removeChild(item) + + } else { + index = self.data.indexOf({ dataObject in + return dataObject === item; + })! + self.data.removeAtIndex(index) + } + + self.treeView.deleteItemsAtIndexes(NSIndexSet.init(index: index), inParent: parent, withAnimation: RATreeViewRowAnimationRight) + if let parent = parent { + self.treeView.reloadRowsForItems([parent], withRowAnimation: RATreeViewRowAnimationNone) + } + } +} + + +private extension TreeViewController { + + static func commonInit() -> [DataObject] { + let phone1 = DataObject(name: "Phone 1") + let phone2 = DataObject(name: "Phone 2") + let phone3 = DataObject(name: "Phone 3") + let phone4 = DataObject(name: "Phone 4") + let phones = DataObject(name: "Phones", children: [phone1, phone2, phone3, phone4]) + + let notebook1 = DataObject(name: "Notebook 1") + let notebook2 = DataObject(name: "Notebook 2") + + let computer1 = DataObject(name: "Computer 1", children: [notebook1, notebook2]) + let computer2 = DataObject(name: "Computer 2") + let computer3 = DataObject(name: "Computer 3") + let computers = DataObject(name: "Computers", children: [computer1, computer2, computer3]) + + let cars = DataObject(name: "Cars") + let bikes = DataObject(name: "Bikes") + let houses = DataObject(name: "Houses") + let flats = DataObject(name: "Flats") + let motorbikes = DataObject(name: "motorbikes") + let drinks = DataObject(name: "Drinks") + let food = DataObject(name: "Food") + let sweets = DataObject(name: "Sweets") + let watches = DataObject(name: "Watches") + let walls = DataObject(name: "Walls") + + return [phones, computers, cars, bikes, houses, flats, motorbikes, drinks, food, sweets, watches, walls] + } + +} + diff --git a/Examples/RATreeViewExamples.xcodeproj/project.pbxproj b/Examples/RATreeViewExamples.xcodeproj/project.pbxproj index dd3f87f..2f5d549 100644 --- a/Examples/RATreeViewExamples.xcodeproj/project.pbxproj +++ b/Examples/RATreeViewExamples.xcodeproj/project.pbxproj @@ -15,7 +15,15 @@ 0626D67E1BF89EA700CD3B04 /* RAViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0626D6781BF89EA700CD3B04 /* RAViewController.m */; }; 0626D67F1BF89EA700CD3B04 /* RATableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0626D67A1BF89EA700CD3B04 /* RATableViewCell.m */; }; 0626D6801BF89EA700CD3B04 /* RATableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0626D67B1BF89EA700CD3B04 /* RATableViewCell.xib */; }; - C4169BC8034633EEABAF1D24 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D72FBFE950EB20E9648EC0A /* libPods.a */; }; + 06B5291A1C00D902000F1D5B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B529191C00D902000F1D5B /* AppDelegate.swift */; }; + 06B529211C00D902000F1D5B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 06B5291F1C00D902000F1D5B /* Main.storyboard */; }; + 06B529231C00D902000F1D5B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 06B529221C00D902000F1D5B /* Assets.xcassets */; }; + 06B529261C00D902000F1D5B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 06B529241C00D902000F1D5B /* LaunchScreen.storyboard */; }; + 06B5293A1C00D99D000F1D5B /* TreeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B529391C00D99D000F1D5B /* TreeViewController.swift */; }; + 06B5296A1C01C91D000F1D5B /* DataObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B529691C01C91D000F1D5B /* DataObject.swift */; }; + 06B5296C1C01D386000F1D5B /* TreeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B5296B1C01D386000F1D5B /* TreeTableViewCell.swift */; }; + 06B5296E1C01D3A6000F1D5B /* TreeTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 06B5296D1C01D3A6000F1D5B /* TreeTableViewCell.xib */; }; + 401627C40DF2F8C0B307F931 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A4FF940C29CBDD77E66C3E8 /* Pods.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -29,13 +37,23 @@ 0626D6751BF89EA700CD3B04 /* RADataObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RADataObject.h; sourceTree = ""; }; 0626D6761BF89EA700CD3B04 /* RADataObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RADataObject.m; sourceTree = ""; }; 0626D6771BF89EA700CD3B04 /* RAViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAViewController.h; sourceTree = ""; }; - 0626D6781BF89EA700CD3B04 /* RAViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAViewController.m; sourceTree = ""; }; + 0626D6781BF89EA700CD3B04 /* RAViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = RAViewController.m; sourceTree = ""; tabWidth = 2; }; 0626D6791BF89EA700CD3B04 /* RATableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RATableViewCell.h; sourceTree = ""; }; 0626D67A1BF89EA700CD3B04 /* RATableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RATableViewCell.m; sourceTree = ""; }; 0626D67B1BF89EA700CD3B04 /* RATableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RATableViewCell.xib; sourceTree = ""; }; + 06B529171C00D901000F1D5B /* RATreeViewBasicExampleSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RATreeViewBasicExampleSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 06B529191C00D902000F1D5B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 06B529201C00D902000F1D5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 06B529221C00D902000F1D5B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 06B529251C00D902000F1D5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 06B529271C00D902000F1D5B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 06B529391C00D99D000F1D5B /* TreeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TreeViewController.swift; sourceTree = ""; }; + 06B529691C01C91D000F1D5B /* DataObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataObject.swift; sourceTree = ""; }; + 06B5296B1C01D386000F1D5B /* TreeTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TreeTableViewCell.swift; sourceTree = ""; }; + 06B5296D1C01D3A6000F1D5B /* TreeTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TreeTableViewCell.xib; sourceTree = ""; }; 4F48FAD74174668D34716D19 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + 5A4FF940C29CBDD77E66C3E8 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 76BE2A393CB25E1455D8692E /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 8D72FBFE950EB20E9648EC0A /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -43,7 +61,14 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C4169BC8034633EEABAF1D24 /* libPods.a in Frameworks */, + 401627C40DF2F8C0B307F931 /* Pods.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 06B529141C00D901000F1D5B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -64,6 +89,7 @@ isa = PBXGroup; children = ( 0626D6561BF89DCB00CD3B04 /* RATreeViewBasicExample.app */, + 06B529171C00D901000F1D5B /* RATreeViewBasicExampleSwift.app */, ); name = Products; sourceTree = ""; @@ -72,6 +98,7 @@ isa = PBXGroup; children = ( 0626D6571BF89DCB00CD3B04 /* RATreeViewBasicExample */, + 06B529181C00D902000F1D5B /* RATreeViewBasicExampleSwift */, ); name = Examples; sourceTree = ""; @@ -104,6 +131,22 @@ name = "Supporting Files"; sourceTree = ""; }; + 06B529181C00D902000F1D5B /* RATreeViewBasicExampleSwift */ = { + isa = PBXGroup; + children = ( + 06B529191C00D902000F1D5B /* AppDelegate.swift */, + 06B529391C00D99D000F1D5B /* TreeViewController.swift */, + 06B529691C01C91D000F1D5B /* DataObject.swift */, + 06B5296B1C01D386000F1D5B /* TreeTableViewCell.swift */, + 06B5296D1C01D3A6000F1D5B /* TreeTableViewCell.xib */, + 06B5291F1C00D902000F1D5B /* Main.storyboard */, + 06B529221C00D902000F1D5B /* Assets.xcassets */, + 06B529241C00D902000F1D5B /* LaunchScreen.storyboard */, + 06B529271C00D902000F1D5B /* Info.plist */, + ); + path = RATreeViewBasicExampleSwift; + sourceTree = SOURCE_ROOT; + }; 7AB727989C6B0FB96E3F22AB /* Pods */ = { isa = PBXGroup; children = ( @@ -116,7 +159,7 @@ 7E1E0AFE31E152FE05BD41F7 /* Frameworks */ = { isa = PBXGroup; children = ( - 8D72FBFE950EB20E9648EC0A /* libPods.a */, + 5A4FF940C29CBDD77E66C3E8 /* Pods.framework */, ); name = Frameworks; sourceTree = ""; @@ -144,18 +187,39 @@ productReference = 0626D6561BF89DCB00CD3B04 /* RATreeViewBasicExample.app */; productType = "com.apple.product-type.application"; }; + 06B529161C00D901000F1D5B /* RATreeViewBasicExampleSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 06B529331C00D902000F1D5B /* Build configuration list for PBXNativeTarget "RATreeViewBasicExampleSwift" */; + buildPhases = ( + 06B529131C00D901000F1D5B /* Sources */, + 06B529141C00D901000F1D5B /* Frameworks */, + 06B529151C00D901000F1D5B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RATreeViewBasicExampleSwift; + productName = RATreeViewBasicExampleSwift; + productReference = 06B529171C00D901000F1D5B /* RATreeViewBasicExampleSwift.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 0626D62C1BF89D5B00CD3B04 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 0710; LastUpgradeCheck = 0710; ORGANIZATIONNAME = com.Augustyniak; TargetAttributes = { 0626D6551BF89DCB00CD3B04 = { CreatedOnToolsVersion = 7.1; }; + 06B529161C00D901000F1D5B = { + CreatedOnToolsVersion = 7.1; + }; }; }; buildConfigurationList = 0626D62F1BF89D5B00CD3B04 /* Build configuration list for PBXProject "RATreeViewExamples" */; @@ -172,6 +236,7 @@ projectRoot = ""; targets = ( 0626D6551BF89DCB00CD3B04 /* RATreeViewBasicExample */, + 06B529161C00D901000F1D5B /* RATreeViewBasicExampleSwift */, ); }; /* End PBXProject section */ @@ -187,6 +252,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 06B529151C00D901000F1D5B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06B529261C00D902000F1D5B /* LaunchScreen.storyboard in Resources */, + 06B5296E1C01D3A6000F1D5B /* TreeTableViewCell.xib in Resources */, + 06B529231C00D902000F1D5B /* Assets.xcassets in Resources */, + 06B529211C00D902000F1D5B /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -250,6 +326,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 06B529131C00D901000F1D5B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06B5293A1C00D99D000F1D5B /* TreeViewController.swift in Sources */, + 06B5296C1C01D386000F1D5B /* TreeTableViewCell.swift in Sources */, + 06B5296A1C01C91D000F1D5B /* DataObject.swift in Sources */, + 06B5291A1C00D902000F1D5B /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -261,6 +348,22 @@ name = LaunchScreen.storyboard; sourceTree = ""; }; + 06B5291F1C00D902000F1D5B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 06B529201C00D902000F1D5B /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 06B529241C00D902000F1D5B /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 06B529251C00D902000F1D5B /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -368,6 +471,31 @@ }; name = Release; }; + 06B529341C00D902000F1D5B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = RATreeViewBasicExampleSwift/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.Augustyniak.RATreeViewBasicExampleSwift; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 06B529351C00D902000F1D5B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = RATreeViewBasicExampleSwift/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.Augustyniak.RATreeViewBasicExampleSwift; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -389,6 +517,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 06B529331C00D902000F1D5B /* Build configuration list for PBXNativeTarget "RATreeViewBasicExampleSwift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 06B529341C00D902000F1D5B /* Debug */, + 06B529351C00D902000F1D5B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 0626D62C1BF89D5B00CD3B04 /* Project object */;