导航
为什么要写这个小框架
可用查看一行代码完成“点击状态栏,滚动视图当前内容滚动到顶部
集成后的效果
使用LYTopWindow
两步完成:
第一步:使用CocoaPods导入LYTopWindow
在 Podfile 中进行如下导入:
然后使用 cocoaPods 进行安装:
如果尚未安装 CocoaPods, 运行以下命令进行安装:
安装成功后就可以安装依赖了:
建议使用如下方式:
# 禁止升级CocoaPods的spec仓库,否则会卡在 Analyzing dependencies ,非常慢
pod update --verbose --no-repo-update
如果提示找不到库,则可去掉 --no-repo-update
第二步:集成点击状态栏,滚动视图当前内容滚动到顶部
导入头文件
在AppDelegate.m中方法application:didFinishLaunchingWithOptions:中添加以下代码
[[LYTopWindow sharedTopWindow] setClickStatusBarBlock:^{ // 让keyWindow上的ScrollView滚动到顶部 [[LYTopWindow sharedTopWindow] searchAllScrollViewsInView:[UIApplication sharedApplication].keyWindow]; // 如果需要实现点击状态栏,实现其他功能,可用在这里编写功能代码 }];
注意:如果需要实现其他功能效果,可以将这句代码替换成其他需要的代码
[LYTopWindow sharedTopWindow] searchAllScrollViewsInView:[UIApplication sharedApplication].keyWindow];
补充
由于keyWindow的控制器不再是最顶层控制器了,那么控制器的这两个方法会失效
- 控制器的
- (BOOL)prefersStatusBarHidden方法决定状态栏的可见性 - 控制器的
- (UIStatusBarStyle)preferredStatusBarStyle方法决定状态栏的样式
原因就是状态栏的样式\可见性,由最顶层(盖在最上面)window的控制器来决定
所以如果使用了LYTopWindwo,如果要控制状态栏的样式和可见性可以使用下面的代码:
// 可见性 [LYTopWindow sharedTopWindow].statusBarHidden = NO; [LYTopWindow sharedTopWindow].statusBarHidden = YES;
// 样式 [LYTopWindow sharedTopWindow].statusBarStyle = UIStatusBarStyleDefault; [LYTopWindow sharedTopWindow].statusBarStyle = UIStatusBarStyleLightContent;
运行Demo
# 打开终端,进入 clone 的文件夹
cd /Users/YourUserName/Documents/LYTopWindow
# 如果提示找不到库,则可去掉 --no-repo-update
pod install --verbose --no-repo-update
cd LYTopWindowExample
open LYTopWindowExample.xcodeproj
License
LYTopWindow is available under the MIT license. See the LICENSE file for more info.
