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

标签 ios swift xcode uicollectionview uisearchcontroller

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

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

最佳答案

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

您可以通过编程方式创建这样的 Collection View :

 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 和其他委托(delegate)将项目添加到此 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

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

关于ios - 在 UISearchController 下添加水平滚动过滤器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50768140/

相关文章:

objective-c - 本地化核心数据模型属性以供显示

ios - 我如何对 DispatchQueue.main 上运行的代码块进行单元测试

dictionary - 快速字典嵌套数组操作 - 不能改变字典内的嵌套数组

iphone - CHCSVParser - 如何从网络服务器加载

c++ - 检测墙壁或平面(使用 OpenCV)?

iOS8自定义键盘问题

ios - 保存高分

objective-c - 带有一些 C++ 代码的 Objective C 无法编译

swift - 在 xcode 中使用调试器 Commend 跳转断点

ios - 选择单元格时仅更改拇指背景颜色