在导航栏下添加粘滞视图 [英] Add a sticky view underneath the Navigation Bar

查看:108
本文介绍了在导航栏下添加粘滞视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经看过其他几个例子,但我还没有看到任何其他的例子。我想要的基本上就是tableViewHeader所做的事情。我有一个带导航栏的tableViewController。我想放置一个视图,在导航栏正下方的小栏中显示一些搜索条件。但是当用户滑动查看结果时我需要它。

I've seen a few other examples, but I haven't seen anything that actually sticks. What I want is essentially what a tableViewHeader does. I have a tableViewController with a navigation bar. I want to put a view into place that shows some search criteria in a small bar directly below the navbar. But I need it to stick when the user swipes to view the results.

我尝试将UIView作为子视图添加到导航栏,但它始终位于导航栏的顶部,覆盖所有内容。

I've tried adding a UIView as a subview to the navigation bar, but it always sits at the top of the Navigation Bar, overlaying everything.

推荐答案

以下是有效的:

// Create a custom navigation view
    _navigationView = [[UIView alloc] init];
    _navigationView.backgroundColor = [UIColor whiteColor];
    _navigationView.frame = CGRectMake(0.0f,
                                       self.navigationController.navigationBar.frame.origin.y + 44.0f,
                                       self.view.frame.size.width,
                                       30.0f);

    // Create bottom border for the custom navigation view
    _navigationViewBorder = [[UIView alloc] init];
    _navigationViewBorder.backgroundColor = [UIColor darkGrayColor];
    _navigationViewBorder.tag = 1;
    _navigationViewBorder.frame = CGRectMake(0.0f,
                                             self.navigationController.navigationBar.frame.origin.y + 74.0f,
                                             self.view.frame.size.width,
                                             0.5f);

    // Add labels for date, results, and the time range
    _dateDisplay = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 70, 15)];
    [_dateDisplay setFont:[UIFont fontWithName:@"HelveticaNeue" size:13]];
    [_dateDisplay setText:@""];

    _timeRangeDisplay = [[UILabel alloc] initWithFrame:CGRectMake(98, 0, 135, 15)];
    [_timeRangeDisplay setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:13]];
    [_timeRangeDisplay setText:@""];

    _resultsDisplay = [[UILabel alloc] initWithFrame:CGRectMake(240, 0, 80, 15)];
    [_resultsDisplay setFont:[UIFont fontWithName:@"HelveticaNeue" size:13]];
    [_resultsDisplay setText:@""];

    [_navigationView addSubview: _dateDisplay];
    [_navigationView addSubview: _timeRangeDisplay];
    [_navigationView addSubview: _resultsDisplay];

    // Add two views to the navigation bar
    [self.navigationController.navigationBar.superview insertSubview:_navigationView belowSubview:self.navigationController.navigationBar];
    [self.navigationController.navigationBar.superview insertSubview:_navigationViewBorder belowSubview:_navigationView];

这篇关于在导航栏下添加粘滞视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆