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

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

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

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

Xcode

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

Swift

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

Q&A

1回答

5025閲覧

[Swift]Viewのリアルタイム更新の方法

RioNishino

総合スコア36

iOS

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2015/05/12 05:00

Viewの更新方法を教えてください。

現在、ViewControllerに複数のCollectionViewがあり、それをScrollViewで表示していく構造になっています。SmartNewsのようなものを想像していただけると分かりやすいかと思います。ちなみに私は画像を表示しています。

そこで表示する画像のカテゴリーを設定で変更できるようにしたいと考えています。例えば、Gunosyのようにカテゴリーを非表示にしたり、並べ替えたりしたときにリアルタイム設定が反映されるようにしたいです。

現状は、ひとつのカテゴリーが非表示(または表示)を選択されたときに、一度すべてのViewを削除して、非表示になったカテゴリーを消して、またViewを生成しています。それではあまりにも処理が重く、困っています。

以下がソースです。

lang

1// ViewControllerのsubviewをすべて削除 2for subview in ViewController().view.subviews { 3 subview.removeFromSuperview() 4} 5 6// CollectionViewControllerのインスタンスを生成 7let collectionViewController = CollectionViewController(parent: parent) 8 9// 表示するデータを取得 10collectionViewController!.setCollectionDataList() 11 12// 再びViewControllerのsubviewにCollectionViewをセット 13ViewController().view.addSubview(appDelegate.slidingContainerViewController!.view)

subviewを削除せずに、更新できたら嬉しいのです。
または重くならない対処方などがあれば、ご教示ください。

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

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

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

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

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

guest

回答1

0

Viewの貼り付け、生成はものすごコストの高い処理になります。

ですので出来るだけ再利用しましょう。(テーブルやコレクションビューもセルを再利用しています。)

まず、グノシーの用な横にスライドするページだと、今表示されているコレクションビューと隠れている左右のコレクションビューの合計3枚を予め作っておいて、そちらを見えてないですが、左右に表示させておきます。

スワイプしてどちらかにページを切り替えた時に、移動先のページの情報を使って真ん中のページを考試院し、スクロールビューのcontentOffsetも真ん中のページに合わせてあげます。

そして、左右のページもデータを更新すれば、Viewを一度破棄して再生成するよりかなり処理が軽くなるとおもいます。

投稿2015/06/17 14:00

okenProg

総合スコア153

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問