2017-02-14 5 views
-4

私のアプリは数十のtableViewsを持っています、彼らはすべて正常に動作しますが、私は最終的なセルとしてセルを追加すると、この重複で重複して取得する比較的長いテーブル。なぜ、セルがUITableViewで重なり合うのですか?

テーブルソースをチェックしましたが、このタイプのセルが1つしかありません。なぜ重複するのですか?

は私がすべてのリフレッシュ後に名前

let cell = tableView.dequeueReusableCellWithIdentifier(cellName, forIndexPath: indexPath) 

によって細胞を呼び出すために、この一般的な方法を使用して、あなたは一つの「reportPlace」ID、なぜこれらすべての重複を見ることができます。

items = [["similarPlace", "similarPlace", "similarPlace", "reportPlace"]] 

-

disaster

免責事項:私は、私は同じ問題を抱えていたし、できませんでした同様の問題

+0

let cell = tableView.dequeueReusableCellWithIdentifier( "Songcell"、forIndexPath:indexPath) –

+0

ビューコントローラコードはどちらも使えますか? –

+0

あなたがカスタムビューを撮影した場合、最後のセルのセルの高さを確認してください。 –

答えて

2

ソリューションで同じことを実行します。一度だけの高さを決定します。

私は、セルの高さにそれがこの問題を引き起こしていた複数回設定された:

self.tableView?.rowHeight = 60.0 
self.tableView?.rowHeight = 100.0 

私はそれが最後の1を取るだろうと思ったが、それぞれがセルのインスタンスを作るように見えます。

また、必要以上にテーブルをリロードしないでください。 cellForRowAtIndexPathメソッドでソースデータを変更しないでください。

+1

'tableviewを設定しました。私のtableview-prepare-methodでestimatedRowHeightを実行すると、この問題に苦労しました。 – Sandu

1

のためのすべての言及ソリューションをチェックしますなぜex actlyそれは(y位置が間違って設定された)たまたま、私はあなたがプログラム的にセルを作成している場合は、単にセルクラスにinitでこれを行うに私

のための問題を解決し、小さな「ハック」をやった:

override init(frame: CGRect) { 
    let noProblemFrame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height) 
    super.init(frame: noProblemFrame) 
} 

はそうawakeFromNib

override func awakeFromNib() { 
    let noProblemFrame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height) 
    frame = noProblemFrame 
+1

ありがとう、私は正直言ってこれを試していない、私のためにそれを解決したのは、私が追加した答えです。 – DeyaEldeen