From 6f756bc55748b2fc700276d528d27c10540134cd Mon Sep 17 00:00:00 2001 From: Bryce Date: Thu, 29 Aug 2013 09:56:26 -0600 Subject: [PATCH 1/4] nothing --- .../UserInterfaceState.xcuserstate | Bin 26217 -> 31188 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate b/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate index 46120e913f8f69b205f2e2d7a69b20f7c3cc703d..37f93e5998a5ceaa97a6f0d4e96bc3c8ee40a487 100644 GIT binary patch literal 31188 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 Date: Thu, 29 Aug 2013 09:57:18 -0600 Subject: [PATCH 2/4] setup reload button to test reloadData function --- .../xcdebugger/Breakpoints.xcbkptlist | 28 +++ QuiltDemo/RFViewController.m | 10 +- QuiltDemo/en.lproj/RFViewController.xib | 186 +++++++++++++++++- RFQuiltLayout/RFQuiltLayout.m | 5 +- 4 files changed, 214 insertions(+), 15 deletions(-) diff --git a/QuiltDemo.xcodeproj/xcuserdata/bryce.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/QuiltDemo.xcodeproj/xcuserdata/bryce.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist index ac62168..36fdb11 100644 --- a/QuiltDemo.xcodeproj/xcuserdata/bryce.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ b/QuiltDemo.xcodeproj/xcuserdata/bryce.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -2,6 +2,34 @@ + + + + + + = self.numbers.count) NSLog(@"Asking for index paths of non-existant cells!! %d from %d cells", indexPath.row, self.numbers.count); diff --git a/QuiltDemo/en.lproj/RFViewController.xib b/QuiltDemo/en.lproj/RFViewController.xib index e5ff70b..f0447a6 100644 --- a/QuiltDemo/en.lproj/RFViewController.xib +++ b/QuiltDemo/en.lproj/RFViewController.xib @@ -1,14 +1,14 @@ - 1536 - 12C3012 - 2844 - 1187.34 - 625.00 + 1552 + 12E55 + 3084 + 1187.39 + 626.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1930 + 2083 IBNSLayoutConstraint @@ -45,6 +45,7 @@ {320, 548} + _NS:9 NO @@ -63,6 +64,7 @@ 292 {{20, 20}, {54, 44}} + _NS:9 NO @@ -98,7 +100,8 @@ 292 {{82, 20}, {83, 44}} - + + _NS:9 NO IBCocoaTouchFramework @@ -115,9 +118,33 @@ + + + 292 + {{180, 20}, {75, 44}} + + + + _NS:9 + NO + IBCocoaTouchFramework + 0 + 0 + 1 + Reload + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + + {{0, 20}, {320, 548}} + 3 @@ -208,6 +235,15 @@ 29 + + + refresh: + + + 7 + + 50 + @@ -232,6 +268,38 @@ 6 + + + 6 + 0 + + 6 + 1 + + 65 + + 1000 + + 3 + 9 + 3 + + + + 3 + 0 + + 3 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + 3 @@ -363,6 +431,7 @@ + @@ -429,6 +498,21 @@ + + 31 + + + + + 36 + + + + + 48 + + + @@ -450,6 +534,10 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -460,6 +548,8 @@ + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -468,14 +558,90 @@ - 30 + 50 + + + + + NSLayoutConstraint + NSObject + + IBProjectSource + ./Classes/NSLayoutConstraint.h + + + + RFQuiltLayout + UICollectionViewLayout + + delegate + NSObject + + + delegate + + delegate + NSObject + + + + IBProjectSource + ./Classes/RFQuiltLayout.h + + + + RFViewController + UIViewController + + id + id + id + + + + add: + id + + + refresh: + id + + + remove: + id + + + + collectionView + UICollectionView + + + collectionView + + collectionView + UICollectionView + + + + IBProjectSource + ./Classes/RFViewController.h + + + + UICollectionViewLayout + NSObject + + IBProjectSource + ./Classes/UICollectionViewLayout.h + + + - 0 IBCocoaTouchFramework YES 3 YES - 1930 + 2083 diff --git a/RFQuiltLayout/RFQuiltLayout.m b/RFQuiltLayout/RFQuiltLayout.m index cf88492..1b82b25 100644 --- a/RFQuiltLayout/RFQuiltLayout.m +++ b/RFQuiltLayout/RFQuiltLayout.m @@ -82,7 +82,7 @@ - (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { int unrestrictedDimensionLength = (isVert? rect.size.height / self.blockPixels.height : rect.size.width / self.blockPixels.width) + 1; int unrestrictedDimensionEnd = unrestrictedDimensionStart + unrestrictedDimensionLength; - [self fillInBlocksToUnrestrictedRow:unrestrictedDimensionEnd]; + [self fillInBlocksToUnrestrictedRow:self.prelayoutEverything? INT_MAX : unrestrictedDimensionEnd]; // find the indexPaths between those rows NSMutableSet* attributes = [NSMutableSet set]; @@ -145,7 +145,7 @@ - (void) prepareLayout { else unrestrictedRow = (self.collectionView.frame.size.width / [self blockPixels].width)+1; - [self fillInBlocksToUnrestrictedRow:unrestrictedRow]; + [self fillInBlocksToUnrestrictedRow:self.prelayoutEverything? INT_MAX : unrestrictedRow]; } - (void) setDirection:(UICollectionViewScrollDirection)direction { @@ -317,7 +317,6 @@ - (void) clearPositions { self.positionByIndexPath = [NSMutableDictionary dictionary]; } - - (NSIndexPath*)indexPathForPosition:(CGPoint)point { BOOL isVert = self.direction == UICollectionViewScrollDirectionVertical; From 1dfa9728c24158bed616fa92c56c4a0d5ab01b91 Mon Sep 17 00:00:00 2001 From: Bryce Date: Thu, 29 Aug 2013 10:34:05 -0600 Subject: [PATCH 3/4] fixed weird behaviors with reloading data --- .../xcshareddata/QuiltDemo.xccheckout | 41 + .../UserInterfaceState.xcuserstate | Bin 31188 -> 29521 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 17 + QuiltDemo/RFViewController.m | 23 +- QuiltDemo/en.lproj/RFViewController.xib | 728 ++---------------- RFQuiltLayout/RFQuiltLayout.m | 7 +- 6 files changed, 161 insertions(+), 655 deletions(-) create mode 100644 QuiltDemo.xcodeproj/project.xcworkspace/xcshareddata/QuiltDemo.xccheckout create mode 100644 QuiltDemo.xcodeproj/xcuserdata/bryce.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist diff --git a/QuiltDemo.xcodeproj/project.xcworkspace/xcshareddata/QuiltDemo.xccheckout b/QuiltDemo.xcodeproj/project.xcworkspace/xcshareddata/QuiltDemo.xccheckout new file mode 100644 index 0000000..0b0c3b4 --- /dev/null +++ b/QuiltDemo.xcodeproj/project.xcworkspace/xcshareddata/QuiltDemo.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 1979D376-5357-476C-8EAB-7832139AF792 + IDESourceControlProjectName + QuiltDemo + IDESourceControlProjectOriginsDictionary + + 06AE9A8A-F38E-41A9-879C-38ABFFD8E44D + ssh://github.com/bryceredd/RFQuiltLayout.git + + IDESourceControlProjectPath + QuiltDemo.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 06AE9A8A-F38E-41A9-879C-38ABFFD8E44D + ../.. + + IDESourceControlProjectURL + ssh://github.com/bryceredd/RFQuiltLayout.git + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + 06AE9A8A-F38E-41A9-879C-38ABFFD8E44D + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 06AE9A8A-F38E-41A9-879C-38ABFFD8E44D + IDESourceControlWCCName + RFQuiltLayout + + + + diff --git a/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate b/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate index 37f93e5998a5ceaa97a6f0d4e96bc3c8ee40a487..06522475c702f7f9d191d43eced389c60729a920 100644 GIT binary patch literal 29521 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 literal 31188 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 + + + + + + + + diff --git a/QuiltDemo/RFViewController.m b/QuiltDemo/RFViewController.m index ed346a3..01248e4 100644 --- a/QuiltDemo/RFViewController.m +++ b/QuiltDemo/RFViewController.m @@ -9,7 +9,9 @@ #import "RFViewController.h" #import -@interface RFViewController () +@interface RFViewController () { + BOOL isAnimating; +} @property (weak, nonatomic) IBOutlet UICollectionView *collectionView; @property (nonatomic) NSMutableArray* numbers; @end @@ -21,13 +23,14 @@ @implementation RFViewController - (void)viewDidLoad { self.numbers = [@[] mutableCopy]; - for(; num<50; num++) { [self.numbers addObject:@(num)]; } + for(; num<0; num++) { [self.numbers addObject:@(num)]; } [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"]; RFQuiltLayout* layout = (id)[self.collectionView collectionViewLayout]; layout.direction = UICollectionViewScrollDirectionVertical; layout.blockPixels = CGSizeMake(310, 255); + layout.prelayoutEverything = YES; [self.collectionView reloadData]; } @@ -39,11 +42,16 @@ - (void) viewDidAppear:(BOOL)animated { - (IBAction)remove:(id)sender { if(!self.numbers.count) return; + if(isAnimating) return; + isAnimating = YES; + [self.collectionView performBatchUpdates:^{ int index = arc4random() % MAX(1, self.numbers.count); [self.numbers removeObjectAtIndex:index]; [self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:0]]]; - } completion:nil]; + } completion:^(BOOL done) { + isAnimating = NO; + }]; } - (IBAction)refresh:(id)sender { @@ -51,11 +59,16 @@ - (IBAction)refresh:(id)sender { } - (IBAction)add:(id)sender { + if(isAnimating) return; + isAnimating = YES; + [self.collectionView performBatchUpdates:^{ - int index = arc4random() % self.numbers.count; + int index = arc4random() % MAX(self.numbers.count,1); [self.numbers insertObject:@(++num) atIndex:index]; [self.collectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:0]]]; - } completion:nil]; + } completion:^(BOOL done) { + isAnimating = NO; + }]; } - (UIColor*) colorForNumber:(NSNumber*)num { diff --git a/QuiltDemo/en.lproj/RFViewController.xib b/QuiltDemo/en.lproj/RFViewController.xib index f0447a6..dfa43df 100644 --- a/QuiltDemo/en.lproj/RFViewController.xib +++ b/QuiltDemo/en.lproj/RFViewController.xib @@ -1,647 +1,81 @@ - - - - 1552 - 12E55 - 3084 - 1187.39 - 626.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBNSLayoutConstraint - IBProxyObject - IBUIButton - IBUICollectionView - IBUICollectionViewLayout - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 1298 - - - {320, 548} - - - - _NS:9 - NO - YES - YES - IBCocoaTouchFramework - 0.0 - 0.0 - - - - - - - - 292 - {{20, 20}, {54, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Add - - 3 - MQA - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - 3 - MC41AA - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - - - - - 292 - {{82, 20}, {83, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Remove - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - - - - 292 - {{180, 20}, {75, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Reload - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - - - {{0, 20}, {320, 548}} - - - - - 3 - MC43NQA - - 2 - - - NO - - - IBUIScreenMetrics - - YES - - - - - - {320, 568} - {568, 320} - - - IBCocoaTouchFramework - Retina 4 Full Screen - 2 - - IBCocoaTouchFramework - - - - - - - view - - - - 7 - - - - collectionView - - - - 14 - - - - dataSource - - - - 15 - - - - delegate - - - - 16 - - - - delegate - - - - 19 - - - - add: - - - 7 - - 30 - - - - remove: - - - 7 - - 29 - - - - refresh: - - - 7 - - 50 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 6 - - - - - 6 - 0 - - 6 - 1 - - 65 - - 1000 - - 3 - 9 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - 4 - 0 - - 4 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - - - - - - - 8 - - - - - - - - 10 - - - - - 11 - - - - - 12 - - - - - 13 - - - - - 18 - - - - - 20 - - - - - 21 - - - - - 22 - - - - - 23 - - - - - 26 - - - - - 28 - - - - - 31 - - - - - 36 - - - - - 48 - - - - - - - RFViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - RFQuiltLayout - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - - - - - - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - - 50 - - - - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - - - RFQuiltLayout - UICollectionViewLayout - - delegate - NSObject - - - delegate - - delegate - NSObject - - - - IBProjectSource - ./Classes/RFQuiltLayout.h - - - - RFViewController - UIViewController - - id - id - id - - - - add: - id - - - refresh: - id - - - remove: - id - - - - collectionView - UICollectionView - - - collectionView - - collectionView - UICollectionView - - - - IBProjectSource - ./Classes/RFViewController.h - - - - UICollectionViewLayout - NSObject - - IBProjectSource - ./Classes/UICollectionViewLayout.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - YES - 2083 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RFQuiltLayout/RFQuiltLayout.m b/RFQuiltLayout/RFQuiltLayout.m index 1b82b25..cb8f8cf 100644 --- a/RFQuiltLayout/RFQuiltLayout.m +++ b/RFQuiltLayout/RFQuiltLayout.m @@ -8,7 +8,6 @@ #import "RFQuiltLayout.h" @interface RFQuiltLayout () -// todo put these back @property(nonatomic) CGPoint firstOpenSpace; @property(nonatomic) CGPoint furthestBlockPoint; @@ -139,11 +138,13 @@ - (void) prepareLayout { BOOL isVert = self.direction == UICollectionViewScrollDirectionVertical; + CGRect scrollFrame = CGRectMake(self.collectionView.contentOffset.x, self.collectionView.contentOffset.y, self.collectionView.frame.size.width, self.collectionView.frame.size.height); + int unrestrictedRow = 0; if (isVert) - unrestrictedRow = (self.collectionView.frame.size.height / [self blockPixels].height)+1; + unrestrictedRow = (CGRectGetMaxY(scrollFrame) / [self blockPixels].height)+1; else - unrestrictedRow = (self.collectionView.frame.size.width / [self blockPixels].width)+1; + unrestrictedRow = (CGRectGetMaxX(scrollFrame) / [self blockPixels].width)+1; [self fillInBlocksToUnrestrictedRow:self.prelayoutEverything? INT_MAX : unrestrictedRow]; } From d87c94f5006ba3b4befe7d20c7fa1c7da81d322e Mon Sep 17 00:00:00 2001 From: Bryce Date: Thu, 29 Aug 2013 10:41:27 -0600 Subject: [PATCH 4/4] reset some tests back to normal --- .../UserInterfaceState.xcuserstate | Bin 29521 -> 29567 bytes QuiltDemo/RFViewController.m | 6 ++---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate b/QuiltDemo.xcodeproj/project.xcworkspace/xcuserdata/bryce.xcuserdatad/UserInterfaceState.xcuserstate index 06522475c702f7f9d191d43eced389c60729a920..dc25d7259a67767ca770975f68a99d3c12520321 100644 GIT binary patch delta 14614 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 delta 14457 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 diff --git a/QuiltDemo/RFViewController.m b/QuiltDemo/RFViewController.m index 01248e4..3cc5e2f 100644 --- a/QuiltDemo/RFViewController.m +++ b/QuiltDemo/RFViewController.m @@ -23,14 +23,13 @@ @implementation RFViewController - (void)viewDidLoad { self.numbers = [@[] mutableCopy]; - for(; num<0; num++) { [self.numbers addObject:@(num)]; } + for(; num<100; num++) { [self.numbers addObject:@(num)]; } [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"]; RFQuiltLayout* layout = (id)[self.collectionView collectionViewLayout]; layout.direction = UICollectionViewScrollDirectionVertical; - layout.blockPixels = CGSizeMake(310, 255); - layout.prelayoutEverything = YES; + layout.blockPixels = CGSizeMake(100, 100); [self.collectionView reloadData]; } @@ -100,7 +99,6 @@ - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtInd #pragma mark – RFQuiltLayoutDelegate - (CGSize) blockSizeForItemAtIndexPath:(NSIndexPath *)indexPath { - return CGSizeMake(1.0, 1.0); if(indexPath.row >= self.numbers.count) NSLog(@"Asking for index paths of non-existant cells!! %d from %d cells", indexPath.row, self.numbers.count);