• 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

    复制代码
  • 相关阅读:
    [UVA1149]Dominating Patterns
    [HDOJ1358]Period
    [HDOJ3065]病毒侵袭持续中
    【RQNOJ356】myt的格斗
    【rqnoj39】 饮食问题
    【rqnoj28】[Stupid]愚蠢的宠物
    【rqnoj378】 约会计划
    layer弹框在实际项目中的一些应用
    layer弹框在实际项目中的一些应用
    移动开发之css3实现背景几种渐变效果
  • 原文地址:https://www.cnblogs.com/diweinan/p/6226206.html
Copyright © 2020-2023  润新知