自定义点击状态栏返回
来源:互联网 发布:电脑端淘宝详情页尺寸 编辑:程序博客网 时间:2024/05/19 00:09
点击屏幕最上方状态栏(status)时,如果当前是tableview或者是可以滚动的控件,就可以滚动到最上方的位置;
#import "LZPStatuesClickWindow.h"//定义一个全局变量//整个程序的生命周期都存在;UIWindow * _statueWindow;@interface LZPStatuesClickWindow ()@end@implementation LZPStatuesClickWindow+(void)show{ //需要在info.plst中设置status的管理(不让系统管理status); //1.自定义window的级别要高 //2.自定要window需要强引用 //3.如果点击一个类,没有调用该类的方法,则看一下这个对象是什么类型;(如果对象和方法的类不是同一个类,就不会调用); UIApplication * application = [UIApplication sharedApplication]; //该处请注意,创建一个窗口,如果是使用window创建,在被点击的时候,就不会响应该类中的touch方法;该类是继承UIWindow,所以在外面调用该方法的时候是该类调用,所以这里使用self,即该类本身; UIWindow * statueWindow = [[self alloc] initWithFrame:application.statusBarFrame];//设置级别,不设置会显示在下方,被主窗口盖住; statueWindow.windowLevel = UIWindowLevelAlert;//窗口需要设置根控制器 statueWindow.rootViewController = [[UIViewController alloc] init];//当有多个窗口显示的的时候,非主窗口就会隐藏,在这里设置显示 statueWindow.hidden = NO; //设置窗口属性,下面会用到; _statueWindow = statueWindow;}-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ UIWindow * keyWidow = [UIApplication sharedApplication].keyWindow; [self setViewController:keyWidow];}//该方法遍历UIApplication的主窗口下所有的子控件,知道遍历出我们想要的;//使用递归,一层一层的遍历-(void)setViewController:(UIView *)view{ for (UIView * childView in view.subviews) { if ([childView isKindOfClass:[UITableView class]]) { //强制转换一下,才会有tableview的属性 UITableView * tableView = (UITableView *)childView; [tableView setContentOffset:CGPointMake(0, -tableView.contentInset.top) animated:YES]; } [self setViewController:childView]; }}
在APPDelegate中调用:
application.statusBarHidden = NO;
一定要将系统的状态栏显示,因为当有多个窗口的时候系统状态栏会隐藏,默认是显示的
[LZPStatuesClickWindow show];
1 0
- 自定义点击状态栏返回
- 点击状态栏返回
- 点击状态栏返回到表视图顶端
- ios设置点击状态栏返回到顶部
- ios设置点击状态栏返回到顶部
- 多个tableView点击状态栏返回顶部
- Swift - 点击状态栏使tableView返回顶部(附:状态栏点击事件响应)
- UITableView 状态栏返回顶部 和自定义按钮返回顶部
- iOS 点击状态栏返回顶部(多scrollView的实现)
- IOS自定义系统导航栏:导航栏背景色、状态栏样式以及是否隐藏、拦截系统导航栏的返回点击事件
- IOS自定义系统导航栏:导航栏背景色、状态栏样式以及是否隐藏、拦截系统导航栏的返回点击事件
- 自定义导航栏返回按钮点击事件
- UIImagePickerController 状态栏颜色改变,自定义返回按钮
- 瀑布流学习、 点击状态栏返回顶部、 点击按钮返回顶部、Label透明度字体跟着变浅的解决方法
- 自定义状态栏
- 自定义状态栏
- 自定义状态栏
- 自定义状态栏
- linux系统下查看文件大小命令(以G/M/K为单位查看)
- String字符串面试
- cocos2d-js
- Demo1Meterial Design入门:导航栏(使用ToolBar)
- 重读java编程思想之向上转型一
- 自定义点击状态栏返回
- iOS 对字符串压缩
- NYOJ 767 因子和
- Android微信支付
- 《VR入门系列教程》之22---GearVR SDK代码剖析
- [疯狂Java]NIO:使用Channel、Charset(字符集)、使用Charset传递CharBuffer
- Dual Palindromes
- [从头学声学] 第208节 汉语的拼音
- 使用exe4j制作java启动程序等候界面