objective-c - iOS 自定义tableView cell重用导致内容重复 问题 如何有效解决?急急急!!
大家讲道理
大家讲道理 2017-04-18 09:57:24
0
7
535

 [self.tableView registerNib:[UINib nibWithNibName:@"NewTaskCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:NewTaskCellId];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
    if (!cell) {
        cell = [[NewTaskCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NewTaskCellId];
    }
    if (self.taskList.count > indexPath.row) {
        FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];
        [cell setCellContentWith:entity];
    }
    return cell;
}
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(7)
迷茫

Remove if (self.taskList.count >indexPath.row)
セルの通常割り当て
セルが増えたらテーブルを更新するか、新しい行を更新します

いいねを押す +0
巴扎黑

まず、所有するセルの数を確認する必要があります。次に、セルの概念はコンテナを再利用することです。

いいねを押す +0
阿神

registerNib メソッドを使用してすでに登録されています。プロキシ メソッドでセルが空かどうかを判断する必要はありません。

いいねを押す +0
小葫芦

これを (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath プロキシ メソッドに記述します:

リーリー
いいねを押す +0
Ty80

セルの再利用。再利用は、セルの UIButtonUILabel など、再利用前の UIButton で強調表示された状態 UILabel である場合、再利用後は text=@"label" です。は強調表示されたままで、UIButtonUILabeltext のままで、label が再利用されるときに cell メソッドが呼び出されます。したがって、値と状態は一般に cellForRow で再割り当ておよび変更されます。したがって、セルには cellForRow というデフォルトのルールがあり、そうでない場合、セルはカオスになります。 如果有if 那一定要有else

いいねを押す +0
Ty80

登録後、セルが空であるかどうかを判断する必要はありませんが、なぜカウントを判断する必要があるのか​​理解できません。 ?しかし、それはおそらくあなたの問題ではありません。セル上のコントロールが繰り返し追加されることを意味する場合、これはメソッドに問題がある可能性があります。ここでコントロールを作成して追加すると、再利用はデータを更新するだけです。つまり、割り当てプロセスのみがコントロールを作成しません

いいねを押す +0
迷茫

テーブルビューはあまり表示されません。再利用しないと、registerNib メソッドを呼び出した後は、メモリは常に純粋な CELL になります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート