cari

Rumah  >  Soal Jawab  >  teks badan

objective-c - UITableViewDataSource中的cellForRowAtIndexPath如何实现?

在controller中delegate了UITableViewDataSource以后,是必须实现这个方法以展示UITableView的。它的方法原型如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

能否结合例子具体解释下NSIndexPath的含义,另外与它想对应的还有一个必须实现的方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

这个section表示的又是什么呢?

高洛峰高洛峰2885 hari yang lalu657

membalas semua(2)saya akan balas

  • PHPz

    PHPz2017-04-21 11:00:06

    Mula-mula terangkan susun atur TableView Kandungan TableView adalah dua peringkat, Bahagian dan Baris dalam Bahagian Paparan yang sepadan dengan setiap Baris menjadi TableViewCell. Ambil settings.app sebagai contoh, seperti yang ditunjukkan di bawah:

    Terdapat dua Bahagian
    dalam gambar Terdapat 6 Baris dalam Bahagian 0 -- Mod Pesawat~Operator
    Anda boleh melihat 3 Baris dalam Bahagian 1 -- Bunyi ~ Desktop

    Mari kita bincangkan tentang dua kaedah dalam soalan.

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

    Kaedah ini mengembalikan sel tertentu, yang boleh dipaparkan dalam pelbagai gaya tersuai atau dipaparkan dalam beberapa gaya lalai.
    IndexPath menandakan lokasi sel yang anda ingin buat. Terdapat dua atribut dalam objek indexPath, bahagian dan baris Seperti namanya, anda boleh mencari sel tertentu.
    Nota: Kaedah ini akan dipanggil apabila sel muncul pada skrin, dan ia akan dipanggil sekali jika ia tidak muncul sekali. Kerana objek sel dikitar semula apabila kawasan yang kelihatan pada skrin hilang, dan digunakan semula untuk sel lain yang muncul dalam kawasan yang kelihatan. Oleh itu, apabila memaparkan sel dalam kaedah ini, sebaiknya gunakan gelung for atau sesuatu untuk membersihkan sel.

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    Kaedah ini dipanggil apabila TableView dijana (atau apabila reloadData dipanggil pada objek tableView) dan mengembalikan bilangan baris (sel) dalam bahagian tertentu.
    Sebagai contoh, dalam antara muka settings.app, ia sepatutnya

    switch (seciton) {
        0 :
            return 6;
        1 :
            return 3;
    }
    return 0;

    balas
    0
  • PHP中文网

    PHP中文网2017-04-21 11:00:06

    1. NSIndexPath terutamanya termasuk (NSUInteger)section dan (NSUInteger)row Setiap row mesti dimiliki oleh section, jika tidak row ini menunjukkan setiap satu - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section Berapa banyak section ada ke? row 2. Buka
    , tajuk A, B, C... dalam adalah milik Contacts dan section header membentuk header + rows + footer yang lengkap Anda boleh menyesuaikan pengepala dan pengaki melalui section Serupa dengan - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;

    balas
    0
  • Batalbalas