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];

}

下面来看JMSUIScrollViewTool

@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

时间: 2024-10-05 04:45:26

iOS开发 获取状态栏的点击事件的相关文章

iOS开发项目篇—52cell点击事件的处理

iOS开发项目篇—52cell点击事件的处理 一.简单说明 1.简单说明 关于tableView,cell的点击事件是不可避免的.那么在开发中应该如何很好的处理cell的点击事件呢?可以在代理方法中对点击了那个cell进行判断,根据行数的不同,做出不同的选择. 垃圾代码如下: 2.在多数情况下,点击cell都是跳转到对应的控制器. YYCommonItem.h文件 1 // 2 // YYCommonItem.h 3 // 4 5 #import <Foundation/Foundation.h

IOS开发: 为UIImageView添加点击事件

转载于:http://www.pocketdigi.com/20140218/1276.html UIImageView并不像UIButton一样,点点鼠标就可以关联点击事件,也不像Android里有onClickListener,这里需要借助于UITapGestureRecognizer类.从类名上就可以看出,这个类就是用于处理tap(单击)事件的.bbc和voaspecial是UIImageView对象 [bbc setUserInteractionEnabled:YES]; [voaspe

iOS开发&mdash;&mdash;给ImageView添加点击事件

      给ImageView添加点击事件   1: cell.pictureView.userInteractionEnabled = YES; 2: UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc]initWithTarget:cell action:@selector(displayPicture:)]; 3: gr.numberOfTapsRequired = 1; 4: gr.numberOfTouchesReq

iOS开发项目篇—14点击标题按钮弹出菜单

iOS开发项目篇—14点击标题按钮弹出菜单 一.简单说明 (1)简单实现 点击标题按钮弹框,在箭头向上的时候,显示标题菜单 把ImageView添加到谁的身上?三角形的箭头在导航栏上,因此不能添加到tableview上. 分析图示: 有两个两种方法可以考虑: (1)添加到导航控制器上,因为导航栏是在导航控制器上的. (2)不用考虑控制器,直接添加到窗口上. 拿到窗口 (1)self.view.window这个属性谨慎使用,当开始加载的时候,为空 (2)获取主窗口  [UIApplication

iOS开发 - 获取真机沙盒数据

今天要获取之前真机测试时写入沙盒的数据, 本来以为挺麻烦的. 后来捣腾了一下, 才知道原来这么简单... 下面直接看具体步骤. 前提: 真机已经通过USB和你的电脑连接上了! 1.进入Organizer 2.选择你的应用. 并导出数据.(点击Download) 3.保存数据到相应位置.(点击Save) 4.打开, 查看数据. 保存完毕后, 你后发现一个这样的文件. 选中它, 右键---->显示包内容. 然后进入------->AppData ------>Documents. 即可看到你

iOS开发- 获取精确剩余电量

[UIDevice currentDevice].batteryMonitoringEnabled = YES; double deviceLevel = [UIDevice currentDevice].batteryLevel; 获取当前剩余电量, 我们通常采用上述方法.这也是苹果官方文档提供的. 它返回的是0.00-1.00之间的浮点值.  另外, -1.00表示模拟器. 貌似这个方法不错, 也很简单. 但是仔细观察它的返回值, 我们可以发现. 它是以0.05递变的. 折算成100% 也就

IOS开发 获取当前视图所在的类名

NSString *stringClass = NSStringFromClass([(UINavigationController *)self.window.rootViewController topViewController].class); IOS开发 获取当前视图所在的类名

iOS为imageView添加一个点击事件的方法

在iOS开发中又是为了让某一个图片像按钮一样点击之后有相应的事件触发,但是这个图片是添加在imageview上的,这时候就可以用到iOS中的UITapGestureRecognizer创建一个触摸事件,添加到当前的视图上. 具体代码如下 代码添加在你创建好的视图之后就能够实现 UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bgImageV

iOS 开发获取唯一标识

在做流量精灵的时候有这样一个需求,帐户默认需要取手机的imsi 信息.这就有一个好处,即便用户删除我们的应用后从新下载,下次进入时他们还会以同样的身份登陆,并且获得原先纪录.这样不仅对于开发公司人员来说可以统计他是不是新用户,而且对于用户来说可以不用担心之前记录是否被删除.(——我们的软件是不需要注册的,只要用户登录就默认以imsi 为唯一标示来登记的). 但是在iOS开发中,发现不同的系统如 iOS5.iOS6.0.以及iOS7,苹果对它处理的态度是完全不同的.估计苹果是对系统安全的考虑,6.