Rumah > Soal Jawab > teks badan
Sel tableView ditambahkan untuk mengira ketinggian sel dan memanggil kaedah proksi, yang dikembalikan kepada pengawal paparan
Apabila pelayan mengembalikan sumber data, muat semula tableView.
Walau bagaimanapun, indexPaht cellForRowIndexPath yang dilaksanakan pada masa ini bermula dari baris keempat,
Beberapa yang pertama dilangkau,
Saya cuba menulis ketinggian sel sebagai nilai tetap,
Hasilnya adakah bilangan sel adalah normal
Apakah masalahnya?
迷茫2017-05-02 09:31:21
Sepatutnya pengiraan ketinggian adalah ketinggalan.
Turutan paparan tableView adalah kira-kira:
Minta sectionNumber
dan numberForSection
untuk mendapatkan bilangan bahagian dan sel yang ada.
Minta heightForRow:atIndexPath
untuk mendapatkan ketinggian sel yang akan dipaparkan pada antara muka.
kemudian meminta cellForRow
untuk mendapatkan tika sel ini.
Kemudian tetapkan ketinggian sel, dsb. Selepas susun atur, panggil kaedah panggil balik seperti willDisplay
dan kemudian paparkannya pada antara muka.
Jadi apabila anda memuat semula tableView, bahagian ketinggian hendaklah diproses dengan terlebih dahulu mengira ketinggian sel berdasarkan sumber data dan bukannya membiarkan tika sel mengiranya dan kemudian memanggil semula kepada pengawal. Sudah tentu, anda juga boleh mengira dalam sel Contohnya, terdapat kaedah kelas dalam sel, yang dikira berdasarkan data sel masuk, dan pengawal secara aktif memanggil kaedah ini. Kod anggaran adalah seperti berikut:
Dalam kelas pelaksanaan perwakilan pengawal atau tableView:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *cellData = self.dataSource[indexPath.row];
return [MyTableViewCell cellHeightForData:cellData];
}
MyTableViewCell:
+ (CGFloat)cellHeightForData:(NSDictionary *)cellData
{
// 根据 cellData 计算 cell 的高度
return height;
}