[解決済み] dequeueReusableCellWithIdentifier と dequeueReusableCellWithIdentifier : forIndexPath を使用する場合
質問
dequeueReusableCellWithIdentifier には 2 つのオーバーロードがあり、どのような場合に一方を使用するか、もう一方を使用するかを決定しようとしています。
forIndexPath関数に関するappleのドキュメントには、以下のように書かれています。 "このメソッドは、インデックスパスを使用して、テーブルビュー内のセルの位置に基づいて追加の設定を実行します(")。
でも、どう解釈したらいいのかわからないんだけど?
どのように解決するのですか?
最も重要な違いは
forIndexPath:
バージョンは、識別子のクラスまたは nib を登録しなかった場合、アサート (クラッシュ) します。 古い (非
forIndexPath:
を返します。
nil
の場合は
識別子に対するクラスの登録は
registerClass:forCellReuseIdentifier:
をテーブルビューに追加します。 nibを識別子に登録するには、テーブルビューに
registerNib:forCellReuseIdentifier:
をテーブルビューに送信します。
テーブルビューとセルプロトタイプをストーリーボードで作成した場合、ストーリーボードで定義したセルプロトタイプの登録は、ストーリーボードローダが担当します。
セッション200 「WWDC 2012で発表されたCocoa Touchの最新情報
を議論しています(当時は新機能)。
forIndexPath:
のバージョンが8m30sあたりから始まります。 必ず初期化されたセルが得られる」と書いてあります(クラスやnibを登録しなかった場合にクラッシュすることについては触れていません)。
また、ビデオでは、「そのインデックス・パスに適したサイズになる」とも言っています。 おそらくこれは、テーブルビューの幅を見て、デリゲートの
tableView:heightForRowAtIndexPath:
メソッド(定義されている場合)を使用します。
そのため、インデックスパスが必要なのです。
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] NSIntegerとintの使い分けについて
-
[解決済み】Storyboardのログイン画面のベストプラクティス、ログアウト時のデータクリアの処理について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS classic error Undefined symbols for architecture XXX:
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み】dequeueReusableCellWithIdentifier:forIndexPathでアサーションに失敗しました。