目前我的状态栏设置为隐藏,但我想让scrollsToTop方法正常工作。是否有一种解决方法可以隐藏状态栏并检测它何时被点击? 谢谢
答案 0 :(得分:1)
如果隐藏状态栏,设置为scrollsToTop
至YES
的内置解决方案将无效。
滚动到顶部的手势是点击状态栏。当一个用户 做出这个手势,系统会询问离你最近的滚动视图 状态栏滚动到顶部。
您必须在视图中添加UITapGestureRecognizer
并自行检测。
您有两种选择:
将其添加到主视图中,检查点击是否出现在通常状态栏的矩形中。
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint p = [gestureRecognizer locationInView:self.view];
if (CGRectContainsPoint(statusBarRect, p))
{
NSLog(@"Got a tap in the status bar area");
// Scroll to the top.
[self.scrollView setContentOffset:CGPointZero animated:YES];
}
}
答案 1 :(得分:0)
您可以考虑将状态栏与背景混合(即在白色背景上使用UIStatusBarStyleLightContent
或在深色背景上使用UIStatusBarStyleDefault
。无法绕过电池电量不足的内容,但是)。
否则,我建议您创建自己的UIView
,其alpha值为零,UITapGestureRecognizer
代替状态栏,并在您选择时实现自己的滚动版本一个tapGesture。