2016-07-08 17 views
-1

私は1つのプロトタイプセルを持っているtableViewを持っています。カスタムセルと呼ばれるクラスを作成し、そのタイプのtableViewを作成しました。私はそのセル上にimageViewを持っています。私は動的に細胞の数を作成します。迅速にセルの画像ビューにアクセスするにはどうすればよいですか?

どのようにしてそのセルのimageViewにアクセスできますか?

私は何をしようとしたことは次のとおりです。

for i in 0...tableView.numberOfSections-1 
     { 
      for j in 0...tableView.numberOfRowsInSection(i)-1 
      { 
       if let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: j, inSection: i)) { 

        cells.append(cell) 
       } 

      } 
     } 

カスタムセルクラスには、次のようになります。

import UIKit 

class CustomCell: UITableViewCell { 

    @IBOutlet weak var photo1: UIImageView! 
    @IBOutlet weak var photo2: UIImageView! 
    @IBOutlet weak var photo3: UIImageView! 
    @IBOutlet weak var photo4: UIImageView! 
    @IBOutlet weak var photo5: UIImageView! 

    @IBOutlet weak var name: UILabel! 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 

しかし、私は

cells[2].imageView 

をすることができ用いて、第2のセルのImageViewのにアクセスすることができませんどのように私はそれを行うことができます示唆誰ですか?

+0

UITableViewCellサブクラスのコードと、デキューしてセルを使用しようとするコードを投稿してください。 –

+0

代わりに 'tableView.visibleCells'を使うのであれば、それをする必要はないと思います。 –

+0

@PhillipMillsそれはどういう意味ですか?どのようにして特定のセルの画像ビューにtableView.visibleCellsを使ってアクセスできますか? – Raj

答えて

0

Uitableviewは遅延ビューをレンダリングします。このため、可視のセルのみを反復処理する必要があります。willDisplayCellデリゲートメソッドに焦点を当てることをお勧めします。

+0

詳細を教えてください。 – Raj

+0

デキュー可能なセルを使用します。デキュー可能なセルは、それを超えてビューを満たすために繰り返されます。セルがビューから外れると、新しい内容でセルが補充されます。 Thidは50個の細胞の印象を与えますが、7個程度しかレンダリングされません。レンダリングされるビューを塗りつぶすには、UITableViewのデリゲートメソッドを使用してください – Emptyless

+0

実際に私はどの目的のセルを収集しているのかわかりません。私はあなたの質問タイトルから理解するように、セルの画像を更新する最初にテーブルビューの可視セルをチェックします。存在しない場合は、セルの表示/表示を待つ必要があります。この場合、cellForRowAtIndexPathまたはwillDisplayCellは、セルのサブビューを更新するのに適した場所です。 –

関連する問題