我正在开发一个页面,允许用户搜索表格中的内容,我想在搜索栏下添加一些过滤器选项。我已经以编程方式将UISearchController添加到导航栏中,但我想知道如何在搜索栏下添加可水平滚动的过滤器选项列表(就像此图中右侧的布局:https://i.stack.imgur.com/XrjIq.png)。谢谢!
我意识到这可能是之前已经被问过/回答的问题,但我找不到一个单独讨论这个问题的网页。如果您有解决方案的链接,我将非常感激!
答案 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
如果您需要进一步解释,请告诉我。