(MediaUploaderの設計)今回はセルの描画について検討する。前回までの実装で、セルに写真ロールのイメージを貼り付けるところまでは完了している。そのときは細かい内容はさらっと流したが、画像をbackgroundViewにUIImageViewを使って設定している。contentViewの3つのビューを保持している。それらが透明なレイヤのように重なっており、選択したときだけselectedBackgroundViewが表示されるような挙動が、CollectionViewには備わっている。MediaUploaderでは、CollectionViewで写真を選択してアップロードするが、既にアップロード済みのデータを何かしらの方法で記憶しておいて、チェックをつけておきたい。(UIView.isOpaqueで表示と非表示を切り替える?)それらを実現するため、以下のようなビューの構成で実装してみる。(これがベストな方法かどうかは、よくわからない)うまくいけば、下図の様に切り替えられるはずである。CollectionViewのセルの実装まず、CollectionViewに対して、複数選択を許可する。:}次に選択ON/OFFを表示する丸印のビューを、UIViewを継承したSelectIconViewとして作成する。イニシャライザで選択状態のフラグを入力できるようにして、draw()で描画されるときに選択ONのときに塗りつぶすようにする。draw()内で、ベジェツールを使って頑張って丸を描く。}cellForItemAtでbackgroundViewにUIImageViewを設定する処理を全開実装したが、この続きでSelectionIconViewを未選択状態のもの(selected:false)と、選択状態のもの(selected:true)を生成して、前述した設計どおりにビューを設定する。}}ここまで実装したらシミュレータで実行してみる。起動後、すべての写真セルに丸印が描画されていることを確認する。次にセルをタップすると、丸印が塗りつぶされた選択状態に変化すること、複数選択状態にしたり解除できることができるはず。※アップロード済みを示すアイコンの実装は、後日データ管理の実装時に行うので保留とする。次回は、写真のメタ情報の取得についてまとめる。usagi1975.com。