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

 [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;
}
大家讲道理
大家讲道理

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

membalas semua(7)
迷茫

Alih keluar if (self.taskList.count > indexPath.row)
Penugasan normal sel
Apabila sel bertambah, muat semula jadual atau muat semula baris baharu

巴扎黑

Anda harus terlebih dahulu melihat bilangan sel yang anda miliki. Kedua, konsep sel ialah bekas menggunakan semula bekas. Kuasa membuat keputusan terletak pada sumber data

阿神

Anda telah mendaftar menggunakan kaedah registerNib Tidak perlu menentukan sama ada sel kosong dalam kaedah proksi

小葫芦

Tulis ini dalam (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)kaedah proksi indexPath:

NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];       [cell setCellContentWith:entity];
return cell;
Ty80

Penggunaan semula sel, guna semula ialah keadaan sebelumnya, seperti UIButton dan UILabel pada sel Jika UIButton ialah keadaan yang diserlahkan UILabel pada text=@"label" sebelum digunakan semula, kemudian selepas guna semula, UIButton. masih diserlahkan, UILabel daripada text masih label, dan kaedah cell akan dipanggil apabila cellForRow digunakan semula. Oleh itu, nilai dan keadaan biasanya ditetapkan semula dan ditukar dalam cellForRow. Jadi terdapat peraturan lalai dalam sel, iaitu 如果有if 那一定要有else, jika tidak sel akan menjadi huru-hara.

Ty80

Selepas pendaftaran, anda tidak perlu menilai sama ada sel itu kosong, tetapi tidak ada yang salah dengannya. Mengapa kiraan anda perlu dinilai. Mungkin array anda bukan sumber data ? Tetapi ini mungkin bukan masalah anda Jika "penduaan kandungan" anda bermakna bahawa kawalan pada sel ditambah berulang kali, maka ia sepatutnya [cell setCellContentWith: entity]; mungkin anda Cipta kawalan di sini dan tambahkannya hanya menyegarkan data, iaitu, hanya proses tugasan yang tidak mencipta kawalan

迷茫

Paparan meja tidak banyak dipaparkan Jika anda tidak membiarkannya digunakan semula, ia tidak akan diulang Selain itu, selepas memanggil kaedah registerNib, memori akan sentiasa menjadi SEL

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan