質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

408閲覧

[iOS][swift]nendのネイティブ広告をTableView中に表示すると画像がズレてしまう

coronada

総合スコア4

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2018/04/16 05:57

発生している事象

TableViewでコンテンツをリスト表示している中に、Cellのひとつとしてnendのネイティブ広告(画像や広告タイトルなど)を10Cellに1つ程度の割合で表示させています。

素直に実装していると、nendのsdkが広告をネットワークからロードして表示しているため、TableViewを高速でスクロールしていくと、ロードされるまでのタイムラグによって、本来アプリコンテンツを表示するCellにnend広告の画像が表示されてしまうことがあります。

■Cellのイメージ
|画像|タイトル文字列|

*アプリコンテンツのCell画像はKingFisherでネットワークから非同期ロードしています
*広告のCell画像は以下のようなかたちでnendのマニュアル通り非同期ロードしています

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if アプリコンテンツ { cell.icon.kf.setImage(with: URL(string: imgUrl)) } else 広告 { self.nendNativeInstance.loadAdImage { image in cell.icon.image = image } }

みなさまにアドバイスいただきたいこと

TableViewのCellは再利用されていくので、素直にTableViewにnendのネイティブ広告を実装していくと発生してしまうもの考えているのですが、上記のような事象を回避するために工夫されていることがありましたらアドバイスいただけますとありがたいです。

補足情報(FW/ツールのバージョンなど)

Xcode 9.2
Swift 4.1
NendSDK_iOS 4.0.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/04/16 06:48

nendのことばかり書いていますが、通常のセルの画像も同様のことが起こりますよね?
coronada

2018/04/17 01:11 編集

そうですね、仕組み上は通常のセルでも同様のことが起こり得ます。 現状はnendの画像のロードに時間がかかるので顕著にでているといった感じです。 どうにか回避できないものなのですかね・・
guest

回答1

0

セルが画面外に出たとき(もしくは、再利用されたとき)に読み込みキャンセルする。

(追加分)

  • 通常セルと広告セルのreuseIdを違うものにする。
  • セルのreuse(再利用)を使わずに自分でセルを管理する。

投稿2018/04/17 01:27

編集2018/04/17 15:40
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coronada

2018/04/17 13:46

ご回答ありがとうございます。 nendのネイティブ広告SDKに読み込みキャンセルあるのでしたっけ。。 見落としていたら申し訳ございません。。
fuzzball

2018/04/17 15:41

nendのことは知らないのですみません。 読み込み制御できないのであれば別の方法を考えないといけませんね。 ただの思い付きですが、回答に追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問