github641 / LYTopWindow

一行代码集成点击状态栏,滚动视图滚动到顶部

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LYTopWindow【一行代码完成“点击状态栏,滚动视图当前内容滚动到顶部”】

![enter image description here](https://img.shields.io/badge/pod-v1.0.3-brightgreen.svg) ![enter image description here](https://img.shields.io/badge/Objective--C-compatible-orange.svg) ![enter image description here](https://img.shields.io/badge/platform-iOS%207.0%2B-ff69b4.svg)

导航

  1. 为什么要写这个小框架
  2. 集成后的效果
  3. 使用LYTopWindow
  4. 运行Demo

为什么要写这个小框架

可用查看一行代码完成“点击状态栏,滚动视图当前内容滚动到顶部

集成后的效果

集成后的效果

使用LYTopWindow

两步完成:

  1. 第一步:使用cocoaPods导入LYTopWindow
  2. 第二步:集成点击状态栏,滚动视图当前内容滚动到顶部

第一步:使用CocoaPods导入LYTopWindow

Podfile 中进行如下导入:

pod 'LYTopWindow'

然后使用 cocoaPods 进行安装:

如果尚未安装 CocoaPods, 运行以下命令进行安装:

gem install cocoapods

安装成功后就可以安装依赖了:

建议使用如下方式:

# 禁止升级CocoaPods的spec仓库,否则会卡在 Analyzing dependencies ,非常慢 
pod update --verbose --no-repo-update

如果提示找不到库,则可去掉 --no-repo-update

pod update

第二步:集成点击状态栏,滚动视图当前内容滚动到顶部

导入头文件

#import <LYTopWindow.h>

在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

About

一行代码集成点击状态栏,滚动视图滚动到顶部

License:Apache License 2.0


Languages

Language:Objective-C 98.1%Language:Ruby 1.9%