多个UITableView 或者Scrollview 置顶问题

来源:互联网 发布:南方大数据300a怎么样 编辑:程序博客网 时间:2024/06/05 00:51

UITableView.scrollsToTop =YES; 或者 UIScrollView.scrollsToTop = YES;

如果页面只有单个,或者固定个数的scrollview或者tableView 设置 scrollsToTop 是最便利的方法(只有一个view.scrollsToTop   YES 属性,其余的都必须为NO)。

然而如果是不定个数的呢?

这是我在stackoverflow 上找到的一个方法:http://stackoverflow.com/questions/3753097/how-to-detect-touches-in-status-bar

Declare notification name somewhere (e.g. AppDelegate.h):

static NSString * const kStatusBarTappedNotification = @"statusBarTappedNotification";

Add following lines to your AppDelegate.m:

#pragma mark - Status bar touch tracking- (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 {    [[NSNotificationCenter defaultCenter] postNotificationName:kStatusBarTappedNotification                                                        object:nil];}

Observe notification in the needed controller (e.g. in viewWillAppear):

[[NSNotificationCenter defaultCenter] addObserver:self                                         selector:@selector(statusBarTappedAction:)                                                          name:kStatusBarTappedNotification                                           object:nil];

Remove observer properly (e.g. in viewDidDisappear):

[[NSNotificationCenter defaultCenter] removeObserver:self name:kStatusBarTappedNotification object:nil];

Implement notification-handling callback:

- (void)statusBarTappedAction:(NSNotification*)notification {    NSLog(@"StatusBar tapped");    //handle StatusBar tap here.}

Hope it will help.


0 0
原创粉丝点击