- (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];
}
}
- (void)statusBarTouchedAction {
[[DDTopWindow defaultDDTopWindow] scrollsToTop];
}
@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