zoukankan      html  css  js  c++  java
  • iOS开发 获取状态栏的点击事件

    首先我们追踪UIStatusBar的触摸事件,需要在AppDelegate里面加入以下代码

    复制代码
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        [super touchesBegan:touches withEvent:event];
        CGPoint location = [[[event allTouches] anyObject] locationInView:self.window];
        CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
        if (CGRectContainsPoint(statusBarFrame, location)) {
            [self statusBarTouchedAction];
        }
    }
    复制代码

    然后在statusBarTouchedAction方法中将显示在当前keyWindow里面的scrollView滚动到顶部

    - (void)statusBarTouchedAction {

          [[DDTopWindow defaultDDTopWindow] scrollsToTop];

    }

    下面来看DDTopWindow

    复制代码

    @interface DDTopWindow : UIView

    + (instancetype)defaultDDTopWindow;

    - (void)configScrollView:(UIScrollView *)scrollView isCanTop:(BOOL)isCanTop;

    - (void)scrollsToTop;

    @end

    复制代码
    复制代码

    #import "DDTopWindow.h"

    static UIScrollView *scrollView_;

    @interface DDTopWindow ()

    @property (nonatomic, assign) BOOL isCan;

    @end

    @implementation DDTopWindow

    SYNTHESIZE_SINGLETON_FOR_CLASS_ARC(DDTopWindow);

    - (void)configScrollView:(UIScrollView *)scrollView isCanTop:(BOOL)isCanTop {

      scrollView_ = scrollView;

      self.isCan = isCanTop;

    }

    - (void)scrollsToTop {

      if (scrollView_.scrollEnabled) {

        [scrollView_ setContentOffset:CGPointMake(scrollView_.contentOffset.x, -scrollView_.contentInset.top) animated:YES];

      }

    }

    @end

    复制代码
  • 相关阅读:
    第一次作业(2)
    第0次作业(2)
    最后一次作业—总结报告
    第八次作业
    第七周作业
    第六周作业
    第四周作业
    第4次作业
    2018c语言第3次作业
    2018c语言第2次作业
  • 原文地址:https://www.cnblogs.com/diweinan/p/6226206.html
Copyright © 2011-2022 走看看