【发布时间】:2014-07-14 15:20:27
【问题描述】:
目前我的状态栏设置为隐藏,但我想让 scrollsToTop 方法工作。是否有一种解决方法可以隐藏状态栏并检测它何时被点击? 谢谢
【问题讨论】:
标签: ios uiscrollview scroll statusbar
目前我的状态栏设置为隐藏,但我想让 scrollsToTop 方法工作。是否有一种解决方法可以隐藏状态栏并检测它何时被点击? 谢谢
【问题讨论】:
标签: ios uiscrollview scroll statusbar
如果状态栏被隐藏,内置解决方案将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];
}
}
【讨论】:
您可以考虑将状态栏与背景混合(即在白色背景上使用 UIStatusBarStyleLightContent 或在深色背景上使用 UIStatusBarStyleDefault。但是无法解决电池电量不足的问题)。
否则,我建议您创建自己的UIView,alpha 为零,UITapGestureRecognizer 代替状态栏,并实现您自己版本的滚动到顶部,当您拿起一个 tapGesture。
【讨论】: