Ios 如果单击搜索栏在其中键入内容,如何隐藏集合视图的内容?

Ios 如果单击搜索栏在其中键入内容,如何隐藏集合视图的内容?,ios,swift3,Ios,Swift3,我正在用swift 3为iOS开发一个应用程序,下面是我的问题。我如何实现一个功能,当我选择一个搜索栏在里面键入内容时,它下面的所有图片都会隐藏起来(又称Instagram风格) 例如,在Instagram中,当您单击搜索栏时,如果搜索栏处于活动状态,则所有图片都将隐藏。下面是我的故事板的外观: 调用搜索栏的函数: override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryEleme

我正在用swift 3为iOS开发一个应用程序,下面是我的问题。我如何实现一个功能,当我选择一个搜索栏在里面键入内容时,它下面的所有图片都会隐藏起来(又称Instagram风格)

例如,在Instagram中,当您单击搜索栏时,如果搜索栏处于活动状态,则所有图片都将隐藏。下面是我的故事板的外观:

调用搜索栏的函数:

override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {

        if (kind == UICollectionElementKindSectionHeader) {
            let headerView:UICollectionReusableView =  collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "SearchFoodHeader", for: indexPath)

            return headerView
        }

        return UICollectionReusableView()

    }

有人能帮我解决这个问题吗?

当您的搜索栏处于活动状态时(例如,
becomeFirstResponder
),您可以将集合视图的方法更改为返回零(您可能还需要在集合视图上重新加载数据)

从实际意义上讲,您真正需要做的是让集合视图数据源从符合您希望用户能够从中搜索的任何条件的项目数组中提取。当用户第一次触摸搜索栏时,数组应该为空(因此集合视图中的可见项目数也将为零)


.

当您的搜索栏处于活动状态时(例如,
成为第一响应者
),您可以将集合视图的方法更改为返回零(您可能还需要在集合视图上重新加载数据)

从实际意义上讲,您真正需要做的是让集合视图数据源从符合您希望用户能够从中搜索的任何条件的项目数组中提取。当用户第一次触摸搜索栏时,数组应该为空(因此集合视图中的可见项目数也将为零)


.

实际上,我是通过编程方式调用我的搜索栏,我将为问题添加一个函数,您可以看到它。顺便说一句,你能看一下并给我一些建议吗,因为我是一个编程新手?同样的概念应该仍然适用。如果您使用的是“
SearchFoodHeader
”标题,那么您仍然应该有一个数组,其中包含与您的搜索词相匹配的内容,
numberOfItemsInSection:
从中提取的内容(因此,在搜索字段中首次出现空字符串时,应该不会显示任何单元格)。好的,但问题是,我现在真的不明白如何引用搜索栏。我没有把它拖到我的课堂上。通常,它是作为一个
插座来的,但我没有,而且当我尝试拖放它时,它会给我一个错误,即您无法连接它两次。意味着它已经通过这个函数连接起来了。我的数组总是满的,因为我从数据库中获取图像,这是肯定的。我在想,检查searchBarTextDidBeginEditing是否正确,然后只隐藏单元格。那么,我可以使用什么作为我的搜索栏的变量呢?对于我自己的搜索栏,我通常不将它们包含在headerview中,而是将搜索栏作为拥有集合(或表)视图的视图控制器的一部分,通常位于集合视图的顶部(和上方)。您需要在集合视图的标题视图中使用此搜索栏吗?不知何故,Xcode不允许我在没有可重用视图的情况下使用此搜索栏,这导致我使用标题视图。实际上,我正在以编程方式调用搜索栏,我将为您可以看到的问题添加一个函数。顺便说一句,你能看一下并给我一些建议吗,因为我是一个编程新手?同样的概念应该仍然适用。如果您使用的是“
SearchFoodHeader
”标题,那么您仍然应该有一个数组,其中包含与您的搜索词相匹配的内容,
numberOfItemsInSection:
从中提取的内容(因此,在搜索字段中首次出现空字符串时,应该不会显示任何单元格)。好的,但问题是,我现在真的不明白如何引用搜索栏。我没有把它拖到我的课堂上。通常,它是作为一个
插座来的,但我没有,而且当我尝试拖放它时,它会给我一个错误,即您无法连接它两次。意味着它已经通过这个函数连接起来了。我的数组总是满的,因为我从数据库中获取图像,这是肯定的。我在想,检查searchBarTextDidBeginEditing是否正确,然后只隐藏单元格。那么,我可以使用什么作为我的搜索栏的变量呢?对于我自己的搜索栏,我通常不将它们包含在headerview中,而是将搜索栏作为拥有集合(或表)视图的视图控制器的一部分,通常位于集合视图的顶部(和上方)。你需要像这样在集合视图的标题视图中使用这个搜索栏吗?不知何故,Xcode不允许我在没有可重用视图的情况下这样做,这导致我使用标题视图。