尝试向searchBar添加过滤器,以获取使用AnyObject类型填充的集合视图

时间:2016-08-26 07:31:15

标签: ios swift filter uicollectionview searchbar

我很抱歉这个头衔。我有一个collectionView填充了一个类型为(AnyObject)的对象数组。我正在尝试添加搜索功能。我找到了一个教程,但在教程中它只是一个字符串数组。我希望搜索栏基于用户名进行搜索。除了这个功能,我得到了一切:

func filterContentForSearchText(searchText:String) {
       self.friendsArrayForSearchResult = self.friendsArray.filter() {
           guard let type = ($0 as AnyObject)["username"] as? String else {
               return false
           }
           return type.rangeOfString("username") != nil
       }
   }

基本上,如果用户正在搜索,则使用self.friendsArrayForSearchResult填充集合视图,如果用户未搜索,则使用self.friendsArray填充。

好的,所以我得到了它:

self.usersArrayForSearchResult = self.usersArray.filter() {
            if let pos = ($0["username"] as! String).lowercaseString.rangeOfString(searchText.lowercaseString) {
                return (pos.startIndex == ($0["username"] as! String).startIndex)
            }
            return false
        }

但唯一的问题是我希望它能够显示包含用户搜索内容的用户。因此,如果他们的名字是fred并且你输入ed那么fred就会出现......这可能是使用这个函数还是我必须做一堆其他的东西?

好的,所以在整夜尝试弄明白之后......显然这就是我需要做的一切。

self.friendsArrayForSearchResult = self.friendsArray.filter() {
            if ($0["username"] as! String).lowercaseString.containsString(searchText.lowercaseString) {
                return true
            }
            return false
        }

0 个答案:

没有答案