在UISearchController下添加水平可滚动过滤器选项

时间:2018-06-08 20:42:36

标签: ios swift xcode uicollectionview uisearchcontroller

我正在开发一个页面,允许用户搜索表格中的内容,我想在搜索栏下添加一些过滤器选项。我已经以编程方式将UISearchController添加到导航栏中,但我想知道如何在搜索栏下添加可水平滚动的过滤器选项列表(就像此图中右侧的布局:https://i.stack.imgur.com/XrjIq.png)。谢谢!

我意识到这可能是之前已经被问过/回答的问题,但我找不到一个单独讨论这个问题的网页。如果您有解决方案的链接,我将非常感激!

1 个答案:

答案 0 :(得分:0)

您可以使用过滤器按钮创建一个水平滚动的collectionView,并将其设置在UISearchController下面。

您可以通过编程方式创建这样的集合视图:

 lazy var collectionView: UICollectionView = {
        let layout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        layout.minimumInteritemSpacing = 0
        layout.scrollDirection = UICollectionViewScrollDirection.horizontal
        let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
        cv.backgroundColor =  UIColor.white
        cv.dataSource = self
        cv.delegate = self
        cv.translatesAutoresizingMaskIntoConstraints = false
        return cv
    }()

现在,您可以使用cellForItemAtIndexPath,numberOfItemsInSection和其他委托向此collectionView添加项目。

然后你需要在collectionView上设置约束,如下所示:

 collectionView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
collectionView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
collectionView.topAnchor.constraint(equalTo: searchController.bottomAnchor).isActive = true
collectionView.heightAnchor.constraint(equalToConstant: 44).isActive = true

如果您需要进一步解释,请告诉我。