cari

Rumah  >  Soal Jawab  >  teks badan

Objektif-c - Hanya beberapa sumber data pertama tidak dipaparkan dalam tableView. Menyeretnya ke bawah akan memaparkannya sepenuhnya.

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?

曾经蜡笔没有小新曾经蜡笔没有小新2827 hari yang lalu624

membalas semua(1)saya akan balas

  • 迷茫

    迷茫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;
    }

    balas
    0
  • Batalbalas