2016-06-20 12 views
0

テキスト配列(String)と画像配列(PFFile)からデータを取り込む、完全に機能するテーブルビューを作成しました。また、作成したテキスト配列に基づいてフィルタ結果を表示する検索バーを実装しました。検索バーが正しく表示されないSwift Xcode 7

var fruitArray = [String]() 
var imageFile = [PFFile]() 

問題は何も持っていないかのようにfruitArrayは[indexPath.row]検索バーに入力に応じてフィルタリングされますが、検索バーは、画像ファイルや画像ファイル[indexPath.row]から何かをフィルタリングすることはできませんが表示されていることです検索されました。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    print(fruitArray[indexPath.row]) 

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell 

    if searchController.active && searchController.searchBar.text != "" { 
     cell.labelFruitName?.text = searchResults[indexPath.row] 

    } else { 
     cell.labelFruitName?.text = fruitArray[indexPath.row] 

    } 
    let placeHolder = UIImage(named: "plchlder.png") 
     cell.fruitImages?.image = placeHolder 
     imageFile[indexPath.row].getDataInBackgroundWithBlock { (data, error) -> Void in 

      if let downloadedImage = UIImage(data: data!) { 

       cell.fruitImages?.image = downloadedImage 



      } 

     } 

    return cell 
} 

この結果、画像はセル内で変更されません。言い換えれば、何かを検索する前に、最初のセルがリンゴのテキストと写真を表示した場合、検索後、最初のセルは常にリンゴを表示しますが、テキストとセル数は変化します。 解決方法はありますか?おかげで事前に

答えて

0

私はあなたがタイプ[fruit]の配列を作成することをお勧めします。フルーツは画像と文字列を持つ構造体です。その後、悪いリンゴを除外することができます。ここで

は、構造体のためのコードです:

struct Fruit { 
    let name: String 
    let image: PFFile 
} 

その後、あなたのsearchResultsUpdating機能に単純なフィルタ使用して検索用語をフィルタリング:

results = fruitArray.filter{$0.name.containsString(searchController.searchBar.text!)} 
関連する問題