从UICollectionView搜索数组

时间:2017-05-10 15:36:45

标签: arrays swift search uicollectionview searchbar

我正在创建一个应用程序,用户可以在其中搜索UICollectionView中的图像名称。目前,用户可以为每个图像命名,并将名称存储到名为arrayOfName的数组中。

我添加了一个搜索栏,我可以使用以下方法成功测试其文本:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {


        if (searchText.lowercased() == "test") {


            print("TEST")

        }
}

func addImgNames() {
        for _ in 0...20 {
            imgNames.append("imageNames")
        }

    }

现在用户为图像命名:

let arrayOfNames = defaults.object(forKey: "imageNames") as? [Optional] ?? [String]()

        if let nameOfImage = (arrayOfNames[imgCell]) {
          self.navigationItem.title = nameOfImage

此外,搜索栏委托和arrayOfNames函数有两个sperate类,这使得它更加困难。

如何测试存储在数组中的名称?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该过滤数组,例如:

arrayOfNames.filter {$0.searchInfo.contains(searchText.lowercased())}

要访问arrayOfNames,您可以将其设置为全局,或者只是在使用performWithSegue和prepareForSegue更改视图时传递它。