UItableViewカスタムUItableView Cell

1225 ワード

この文書では、UItableViewの使用方法について詳しく説明しません.今日開発中に遭遇したいくつかの疑問点だけを記録します.- (nullable __kindof UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier;および- (__kindof UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0);方法の違いは何ですか.
まず、公式の説明を見てみましょう.
Used by the delegate to acquire an already allocated cell, in lieu of allocating a new one.
これは前の方法の解釈で、英語はあまりよくありませんが、無理にいくつかのキーを見ることができます.それは新しいcellを作成するのではなく、既存のcellを得るために使用されています.
newer dequeue method guarantees a cell is returned and resized properly, assuming identifier is registered
これは後者の方法の説明であり、最後にassuming identifier is registeredに注意する.これはcellが登録されているClassとNibから来たということだ.- (void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0); - (void)registerClass:(nullable Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);この2つの方法は、カスタムcellを登録するために使用される.つまり、- (__kindof UITableViewCell *)dequeueReusableCellWithIdentifier: forIndexPath:を使用してcellを取得するには、UItableViewと登録されたcellがあることを確認しなければなりません.そうしないと、crashになります.