Transcript
Page 1: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

Session 217

Exploring Scroll Views in iOS 7

Josh Shaffer and Eliza BlockiOS Software

Page 2: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 3: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 4: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 5: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 6: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 7: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 8: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 9: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 10: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 11: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 12: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 13: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 14: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 15: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 16: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 17: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 18: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 19: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 20: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 21: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Nested Scroll Views

Page 22: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 23: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 24: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 25: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 26: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 27: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 28: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 29: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 30: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 31: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 32: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 33: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 34: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

scrollViewDidScroll:

Page 35: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

Page 36: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point

Page 37: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point

Page 38: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point adjust parent contentOffset by delta

Page 39: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point adjust parent contentOffset by delta

Page 40: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Demo

Eliza Block

Page 41: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 42: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 43: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 44: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 45: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 46: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 47: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 48: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 49: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 50: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 51: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 52: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 53: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 54: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 55: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 56: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 57: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 58: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 59: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 60: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 61: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 62: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 63: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 64: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point adjust parent contentOffset by delta

Page 65: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Pulling the Parent Scroll View

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { determine delta beyond catch point adjust parent contentOffset by delta translate child by delta

Page 66: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Demo

Eliza Block

Page 67: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Scrolling with UIKit Dynamics

Page 68: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 69: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 70: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 71: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 72: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 73: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 74: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Setup

Page 75: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Setup

• Subclass UICollectionViewFlowLayout

Page 76: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Setup

• Subclass UICollectionViewFlowLayout• Create UIDynamicAnimator

Page 77: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Setup

• Subclass UICollectionViewFlowLayout• Create UIDynamicAnimator• Create UIAttachmentBehavior for each item

Page 78: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Setup

• Subclass UICollectionViewFlowLayout• Create UIDynamicAnimator• Create UIAttachmentBehavior for each item• Stretch the attachments when scrolling

Page 79: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

Page 80: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes

Page 81: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes

Page 82: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

Page 83: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

Page 84: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

return [_dynamicAnimator itemsInRect:rect];

Page 85: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

return [_dynamicAnimator itemsInRect:rect];

Page 86: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {

}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

return [_dynamicAnimator itemsInRect:rect];

return [_dynamicAnimator layoutAttributesForCellAtIndexPath:indexPath];

Page 87: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Subclass UICollectionViewFlowLayout

}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

@implementation DynamicCollectionViewFlowLayout

- (void)prepareLayout {

}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath: (NSIndexPath *)indexPath {

}

@end

create UICollectionViewLayoutAttributes create UIDynamicAnimator and UIAttachmentBehaviors

return [_dynamicAnimator itemsInRect:rect];

return [_dynamicAnimator layoutAttributesForCellAtIndexPath:indexPath];

Page 88: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 89: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

scrollViewDidScroll:

Page 90: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

scrollViewDidScroll:

Page 91: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 92: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

contentOffset == bounds.origin

Page 93: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {}

Page 94: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

} CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y

Page 95: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

} CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y

Page 96: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

}

CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y shift layout attribute positions by delta

Page 97: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

}

CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y shift layout attribute positions by delta

Page 98: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

}

CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y shift layout attribute positions by delta notify UIDynamicAnimator

Page 99: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Stretch the Attachments

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

}

CGFloat delta = newBounds.origin.y - self.collectionView.bounds.origin.y shift layout attribute positions by delta notify UIDynamicAnimator

Page 100: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Demo

Eliza Block

Page 101: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 102: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 103: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 104: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 105: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 106: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo
Page 107: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Demo

Eliza Block

Page 108: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

2009 – Mastering iPhone Scroll Views

UIScrollView Session History

2010 – Designing Apps with Scroll Views2011 – Advanced Scroll View Techniques2012 – Enhancing User Experience with Scroll Views2013 – Exploring Scroll Views in iOS 7

Page 109: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

UIScrollView Session History

2010 – Designing Apps with Scroll Views

2011 – Advanced Scroll View Techniques

2012 – Enhancing User Experience with Scroll Views

2009 – Mastering iPhone Scroll Views

2013 – Exploring Scroll Views in iOS 7

Page 110: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

UIScrollView Session History

2010 – Designing Apps with Scroll Views

2011 – Advanced Scroll View Techniques

2012 – Enhancing User Experience with Scroll Views

2009 – Mastering iPhone Scroll Views

2013 – Exploring Scroll Views in iOS 7

basics

photo browsing, tiling

infinite scrolling, stationary views, interaction with gestures

photo browsing 2.0, scrolling with OpenGL, custom deceleration

nested scroll views, integration with dynamics

Page 111: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

More Information

Jake BehrensApp Frameworks [email protected]

DocumentationScroll View Programming Guide for iOShttp://developer.apple.com/ios

Apple Developer Forumshttp://devforums.apple.com

Page 112: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Getting Started with UIKit Dynamics PresidioTuesday 4:30PM

Related Sessions

Building User Interfaces for iOS 7 PresidioTuesday 10:15AM

Advanced Techniques with UIKit Dynamics PresidioThursday 3:15PM

Page 113: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Labs

Cocoa Touch Animation Lab Frameworks Lab BThursday 2:00PM

Scroll View, Collection View, and Table View on iOS Lab Frameworks Lab BThursday 11:30AM

Cocoa Touch Lab Frameworks Lab BFriday 9:00AM

Page 114: Exploring Scroll Views in iOS 7...2012 –!Enhancing User Experience with Scroll Views 2009 –!Mastering iPhone Scroll Views 2013 –!Exploring Scroll Views in iOS 7 basics photo

Top Related