如何使搜索栏缩小效果,如默认邮箱

时间:2017-11-14 06:21:09

标签: ios swift uisearchbar

如何使动画像ios默认邮件。我需要相同的效果,如搜索栏在初始时隐藏,当我拖动表视图下载时,它会显示搜索栏。

就像截图

一样

image 1 image 2

更新问题.-现在我在视图控制器中使用上面tableview的searchBar。

var resultSearchController = UISearchController()
self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()

        workActivityTableView.tableHeaderView = controller.searchBar
        workActivityTableView.contentOffset = CGPoint(x: 0, y: controller.searchBar.frame.height)
        navigationController?.extendedLayoutIncludesOpaqueBars = true

        return controller
    })()

2 个答案:

答案 0 :(得分:1)

search bar拖到故事板中的tableview中,因为它应该是您的tableview的第一个子视图!

Tableview会将其视为标题。

您的视图层次结构将如下所示

enter image description here

搜索栏的默认大小为44

现在,您的viewDidload设置了表格视图的内容偏移量,例如

_tblView.contentOffset = CGPointMake(0, 44);

或者在swift中你可以说,

tblView.contentOffset = CGPoint(x: 0, y: 44)

你已经完成了!

波纹管是结果的截图,

首先

enter image description here

滚动后

enter image description here

如果prefersLargeTitles设置为true,那么这将无效,那么您最初会获得搜索栏!

答案 1 :(得分:0)

我建议您将搜索栏添加为tableHeaderView到您的tableView,并在viewDidLoad中添加以下行:

tableView.tableHeaderView = your_searchbar
tableView.contentOffset = CGPoint(x: 0, y: your_searchar.frame.height)
navigationController?.extendedLayoutIncludesOpaqueBars = true

更新:

通过将搜索控制器添加为navigationItem的一部分,可以轻松实现此目的。像这样的东西: self.navigationItem.searchController = searchController

这可以从iOS 11获得。