我有一个UITableview,我想在触摸状态栏时滚动到顶部。
我希望找到一个我可以收听的通知,然后使用tableview:scrollToRowAtIndexPath:滚动,但是找不到。
有办法做到这一点吗?
[更新]
在网上查找更多内容,我怀疑这是模拟器咬我的。我的UIScrollView无法在模拟器中滚动到顶部,但我还没有尝试过硬件。另外,我有一个UIScrollView,还有UITextView,所以我想知道是不是在吃它。
我将看到我可以用scrollsToTop做什么。
答案 0 :(得分:4)
This article正是您想要的。
从那篇文章:
“样本中最棘手的部分 应用程序正在检测触摸 状态栏。
通过实施自定义 setContentOffset:animated:方法 UITableView并设置断点 在那种方法中,你可以看到 调试器堆栈即UIApplication 调用sendEvent:方法 状态栏接触,所以就在那里 我们将开始。“
答案 1 :(得分:1)
除非您将scrollsToTop属性设置为NO。
,否则它应该自动发生答案 2 :(得分:0)
这可能是一个重大的矫枉过正,但您可以编写自己的状态栏。
您可以通过在应用程序plist中将“状态栏最初隐藏”设置为YES来隐藏实际状态栏。然后在视图顶部创建自己的自定义状态栏视图,其高度为20px,可以是UIButton,也可以是带有UITapGestureRecognizer的UIView。
您可以使用以下方法检测电池电量/状态(充电和插入与否)
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batteryLevel = [myDevice batteryLevel];
UIDeviceBatteryState batteryState = [myDevice batteryState];
您可以[NSDate date]获得时间; (然后使用NSDateFormatter进行格式化)。
获得信号强度为a little iffy,但可以用一定程度的独创性粗略估计。