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

问题描述 投票:1回答:2

如何使动画像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
    })()
ios swift uisearchbar
2个回答
1
投票

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

Tableview会将其视为标题。

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

enter image description here

搜索栏的默认大小为44

现在在你的viewDidload中设置你的表视图的内容偏移量,比如

_tblView.contentOffset = CGPointMake(0, 44);

或者你可以说,

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

你完成了!

风箱是结果的截图,

原来

enter image description here

滚动后

enter image description here

如果prefersLargeTitles设置为true然后最初你将获得搜索栏,这将无法正常工作!


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获得。

© www.soinside.com 2019 - 2024. All rights reserved.