Skip to content
This repository was archived by the owner on Jan 17, 2019. It is now read-only.

Commit fd591f3

Browse files
authored
Merge branch 'master' into umbrella-header-update
2 parents 1a5a19b + fb89105 commit fd591f3

File tree

2 files changed

+31
-11
lines changed

2 files changed

+31
-11
lines changed

sources/HUBViewControllerImplementation.m

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -862,24 +862,28 @@ - (void)collectionViewCellWillAppear:(HUBComponentCollectionViewCell *)cell
862862
}
863863
}
864864

865-
[wrapper viewWillAppear];
865+
[self componentWrapperWillAppear:wrapper];
866866
[self.delegate viewController:self componentWithModel:wrapper.model willAppearInView:cell];
867-
868-
if (wrapper.isContentOffsetObserver) {
869-
[wrapper updateViewForChangedContentOffset:self.collectionView.contentOffset];
870-
}
871867
}
872868

873869
- (void)headerAndOverlayComponentViewsWillAppear
874870
{
875-
[self.headerComponentWrapper viewWillAppear];
871+
if (self.headerComponentWrapper != nil) {
872+
HUBComponentWrapper * const headerComponentWrapper = self.headerComponentWrapper;
873+
[self componentWrapperWillAppear:headerComponentWrapper];
874+
}
876875

877876
for (HUBComponentWrapper * const overlayComponentWrapper in self.overlayComponentWrappers) {
878-
[overlayComponentWrapper viewWillAppear];
879-
880-
if (overlayComponentWrapper.isContentOffsetObserver) {
881-
[overlayComponentWrapper updateViewForChangedContentOffset:self.collectionView.contentOffset];
882-
}
877+
[self componentWrapperWillAppear:overlayComponentWrapper];
878+
}
879+
}
880+
881+
- (void)componentWrapperWillAppear:(HUBComponentWrapper *)componentWrapper
882+
{
883+
[componentWrapper viewWillAppear];
884+
885+
if (componentWrapper.isContentOffsetObserver) {
886+
[componentWrapper updateViewForChangedContentOffset:self.collectionView.contentOffset];
883887
}
884888
}
885889

tests/HUBViewControllerTests.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1444,6 +1444,22 @@ - (void)testComponentNotifiedOfContentOffsetChange
14441444
XCTAssertEqual(self.component.numberOfContentOffsetChanges, (NSUInteger)3);
14451445
}
14461446

1447+
- (void)testHeaderComponentNotifiedOfContentOffsetChange
1448+
{
1449+
self.component.isContentOffsetObserver = YES;
1450+
1451+
self.contentOperation.contentLoadingBlock = ^(id<HUBViewModelBuilder> viewModelBuilder) {
1452+
viewModelBuilder.headerComponentModelBuilder.title = @"Header";
1453+
return YES;
1454+
};
1455+
1456+
[self simulateViewControllerLayoutCycle];
1457+
XCTAssertEqual(self.component.numberOfContentOffsetChanges, (NSUInteger)1);
1458+
1459+
[self.viewController scrollToContentOffset:CGPointMake(0, 100) animated:NO];
1460+
XCTAssertEqual(self.component.numberOfContentOffsetChanges, (NSUInteger)2);
1461+
}
1462+
14471463
- (void)testOverlayComponentNotifiedOfContentOffsetChange
14481464
{
14491465
self.component.isContentOffsetObserver = YES;

0 commit comments

Comments
 (0)