包含多个scrollView时, 点击状态栏滚回顶部

先在pch写一个宏

#define kStatusBarTappedNotification @"statusBarTappedNotification"

在AppDelegate.m

 //解决多个scrollView并存时无法自动滚回顶部
#pragma mark - Status bar touch tracking
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
CGPoint location = [[[event allTouches] anyObject] locationInView:[self window]];
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
if (CGRectContainsPoint(statusBarFrame, location)) {
    [self statusBarTouchedAction];
}
}

- (void)statusBarTouchedAction {
[[NSNotificationCenter defaultCenter] postNotificationName:kStatusBarTappedNotification object:nil];
}

在初始化需要滚动的scrollView的那个类中, 注册通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarTappedAction:) name:kStatusBarTappedNotification object:nil];

通知响应事件

#pragma mark - 点击状态栏的通知响应事件
- (void)statusBarTappedAction:(NSNotification*)notification {
NSLog(@"StatusBar tapped");

CGPoint offset = _collectionView.contentOffset;
offset.y = - _collectionView.contentInset.top;
[_collectionView setContentOffset:offset animated:YES];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容