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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

3回答

2928閲覧

UITableViewCellの更新方法について教えて下さい

yoppy0066

総合スコア293

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2015/07/04 15:18

やりたいこととしましては、twitterのタイムラインのようなUIです。

UITableViewCellの中にいいねボタンを配置して、タップしていいねするといいねボタンの色を変えたいです

自分で実装してみたのですが、どうにもいいねしてから色がかわるまでのタイムラグが長くなってしまいます。サーバ側のレスポンスはすぐなので色をかえて再描画するところがネックとなっているようなのですが解決できずに困っています

当初は、UITableView自体をreloadData()していました。
が、普通に考えて1行しか更新していないのにテーブル全体を更新しているからコストがと思いました

で、対象の行だけ変更しようと以下のような形で実装してみたのですが、いまいちreloadData()をしたときと変わらない気がします、、、
var indexPath = NSIndexPath(forRow: sender.tag, inSection: 0) var indexPaths = [indexPath] self.tableView.reloadRowsAtIndexPaths(indexPaths, withRowAnimation: UITableViewRowAnimation.None)

アプリ開発においてよくあるUIだとは思うのですが、そもそも実装方針がよくないのでしょうか?

どのように実装するのがよいのかご教授いただけないでしょうか

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

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

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

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

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

kubothink

2015/07/22 10:04

いいね!ボタンの色を変更している部分の実装を見せていただけるとアドバイスしやすいかと思います。
guest

回答3

0

サーバーからのコールバックをトリガーにreloadをかけていると思いますが、
その際にメインスレッドで呼んでいますか?

Viewの反映はメインスレッドでないと遅延もしくは反映されないことがあるので、そこを確認してみるといいかもしれません。

投稿2015/07/17 02:40

takaaki8219

総合スコア10

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

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

0

いいね!ぼたんの色の変更はどのように行っていますか?
その部分のソースがあればアドバイスしやすいかと思います。

投稿2015/07/07 01:18

b.u.d.y

総合スコア17

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

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

0

その「タイムラグ」の原因について、もっと詳細に調査してください。
調査にあたっては、処理時間を細かく計測する必要があります。

投稿2015/07/04 15:27

Stripe

総合スコア2183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問