2017-09-27 6 views
0

私はUITableViewを持っていて、スクロール中にジャークを生成しているtableViewの "CellForRowAt"デリゲート関数にカスタムUIViewのnibファイルを含めます。たとえば、次のようにスクロール中にジャークを生成するCellForRowAtにカスタムUIViewのnibファイルを含める

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: 
     "cell", for: indexPath) as! CustomCell 
     let customView: CustomView = Bundle.main.loadNibNamed("CustomView", owner: 
     self, options: nil)![0] as! customView 
     cell.customViewPlacement.addSubview(customView) 
     return cell 
} 

にはどうすればスクロールを修正することができますし、私のコードでの問題は何ですか? おかげ

答えて

0
cell.customViewPlacement.addSubview(customView) 

これはあなたのcellForRowでセルを作成し、再利用する方法ではありませんが、あなたはそれをけいれんさせるため、(重複作り続ける)は、基本的に新しいビューを作成し、毎回あなたのセルのスクロールを、それを追加している、あなたが作成する必要がありますあなたの細胞という見解とペン先、およびのようなviewDidLoadであなたのnibファイルを登録します

tableView.register(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "CustomCell") 

cellForRowで普通のようにデキュー:

let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell 

セルの種類が多い場合は、複数のセルをクラスにして、新しいビューを作成せずに現在のセルに追加します。

+0

いいえ、間違っています。私はtableViewCellのペン先を作成していません。 customViewは私がセルに配置しているビューです。 let customView:CustomView = Bundle.main.loadNibNamed( "CustomView"、オーナー:self、options:nil)![0] as! customView //これは私のカスタムビューです............ cell.customViewPlacement.addSubview(customView)//これは私がカスタムビューを配置する場所です。 –

+0

それはあなたが間違っている場合は、あなたが言っているそのビューを持つセルを含むペン先を作成し、それらを分けてはいけないと思いますが、何らかの理由でそれを行うことができない場合、 'CustomCell'クラスの' awakeFromNib'、 'cellForRow'からではありません – Tj3n

関連する問題