그래서 child view controllers
의 코드 중 하나를 변경하고 싶지 않았다 그러나 나는 확신 나는 그것에게 child tableviews
의 delegate
하지 않는 한 부모가 직접 아이 스크롤을 캡처 할 수있는 방법이 아니지만, 나는 각각 child view controller
이 그들 자신의 tableview의 delegate 일 필요가 있기 때문에 그렇게 할 수 없다.
누락 된 부분을 수정하십시오. 다음
#pragma mark - UIScrollView Delegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSDictionary *scrollViewInfo = [NSDictionary dictionaryWithObject:scrollView forKey:@"someKey"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"someNotificationName" object:nil userInfo:scrollViewInfo];
}
그리고를 단순히 부모에 그 사항을 준수하십시오 :
#pragma mark - Notifications
- (void)registerForNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(childScrollViewDidScroll:) name:@"someNotificationName" object:nil];
}
- (void)childScrollViewDidScroll:(NSNotification *)note {
UIScrollView* scrollView = [[note userInfo] valueForKey:@"someKey"];
CGFloat scrollOffset = scrollView.contentOffset.y;
CGRect headerFrame = self.headerView.frame;
headerFrame.origin.y = -scrollOffset;
self.headerView.frame = headerFrame;
}
그것은 장치의 헤더보기는 스크롤
은 내가 한 일은과 같이 각 아동의
scrollViewDidScroll
방법에서 알림을 보내였다 지체없이, 적어도 순간적으로 나는 만족한다.
나는 이것이 미세하게 잘 수행되지 않을 것이라고 생각합니다. 사용자가 빠르게 스크롤 할 때와 마찬가지로 스크롤처럼 부드럽게 알림을받을 수 있습니다. –