月別アーカイブ: 2019年3月

【Swift4】UITableViewで常時並べ替え可能にする。

参考サイト
UITableViewで常にCellの並び替え(ソート)ができるようにする – Qiita
UITableViewのデリゲートメソッドまとめ – Qiita

viewDidLoadに下記を追加して常時編集状態にする。
tableView.isEditing = true
tableView.allowsSelectionDuringEditing = true

並べ替え可能にするメソッド。
func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
return true
}

並べ替え結果を処理するメソッド。
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
// TODO: 入れ替え時の処理を実装する(データ制御など)
}

編集状態の見た目を編集する。
//左側の+やーを表示
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
return .none //表示させない。
}
//編集モード時に左にずれるか。
func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
return false //ずれない。
}

これらを前回の記事
【Swift4】UITableViewの基本のき。 | iPhoneアプリ備忘録
に適用すると。

起動すると
【Swift4】UITableViewで常時並べ替え可能にする。
この様な感じでいつでも並べ替え可能になる。

【Swift4】UITableViewの基本のき。

UITableViewをよく使います。そんなとき、Master-DetailやNavigationControllerを使うとある程度最初から組んであるのですが、もうちょっと柔軟性が欲しい時や自分の後学のため、備忘録です。

参考サイトはこちら。
5分でUITableViewを作ってみる。 – Qiita

まず、Storyboardでテーブルビューの準備から。
利便性のためナビゲーションコントローラーを使います。(笑)
【Swift4】UITableViewの基本のき。

でも、ルートビューコントローラーがよくわからないので右側のビューを削除します。(笑)
【Swift4】UITableViewの基本のき。

で、普通のビューコントローラーを置いてroot view controllerでつなぎます。(笑)
Projectを作った最初のViewを使っても良いです。それなら.swiftふぁいるもついてるしね。
【Swift4】UITableViewの基本のき。
【Swift4】UITableViewの基本のき。
【Swift4】UITableViewの基本のき。

そうするとナビゲーションバー付きのビューになります。(笑)
【Swift4】UITableViewの基本のき。

ここにさらに使い勝手を良くするためにVertical stack Viewを追加し、上下左右のマージンを0にします。
【Swift4】UITableViewの基本のき。

更にその中にUITableViewを放り込むと上下左右ピタッとくっつき、ついでにTableViewCellをいれるととりあえずテーブルビューの完成。
【Swift4】UITableViewの基本のき。

こうしておくとナビゲーション付きの子ビューも作りやすいし、テーブルビューの上下に検索窓やボタン、広告類なども設置しやすくなります。
.isHiddenを使えば隙間をテーブルビューが埋めてくれます。

ついで、セルはidentifierにCellと設定。
【Swift4】UITableViewの基本のき。

セルの中に一つUILabelを入れて四方を0のConstraintで設定。その際、Tagを1に設定。
【Swift4】UITableViewの基本のき。

Storyboardの準備はこんな感じかな。

さて、やっとコードのキホンのキです。
まずはStoryboardのUITableviewをoutlet接続しておきます。
ついでに簡単な配列も作っておきます。

テーブルビューに必須のメソッドを書いていきます。
まずはセクションを返すもの。とりあえず1かな。

セルの数。テーブルビューに入れる配列の数だけ。

セル本体の設定をします。

最後にdelegateとdataSourceの設定をします。
クラスの宣言のところで、
, UITableViewDelegate, UITableViewDataSource
と、viewDidLoadで、
tableView.delegate = self
tableView.dataSource = self
を追加します。

これでテーブルビューが表示されます。
【Swift4】UITableViewの基本のき。

【cocoapods】たまにしか使わないのですぐにわからなくなる。/(^o^)\

Firebase admobをやってみようと思った。
cocoapodsで入れるんだけど使い方忘れた。

って前にも書いたような気がする。/(^o^)\
超初心者向け【cocoapods】の始め方。 | iPhoneアプリ備忘録
【CocoaPods】Podfileの書き方が変わっていた。 | iPhoneアプリ備忘録

2年くらい前か。(^_^;)
バージョンも変わってるかなと試してみた。

とりあえずルビーのアップデートはこれでええんかいな?

結果↓

うむ。なんかエラーが出た。
後で調べたらここが参考になった。
gem updateでエラーが出た時の対処法 | ハックノート

よくわからんが

とやってみた。

結果↓

なんかインストールできたっぽい。
良かったよかった?/(^o^)\

インストールできたらセットアップも必要らしい。

結果↓

せったっぷかんりょうです。\(^o^)/

続いて、
podファイルを用意する。
まずXcodeのProjectのあるフォルダを表示。
【cocoapods】たまにしか使わないのですぐにわからなくなる。/(^o^)\
更にそのProjectの入っている一つ上のディレクトリに移動。

ターミナルをそのディレクトリに移動する。
ターミナルで、$ cd と書いたあとにProjectのフォルダをドラッグアンドドロップする。

で、

すると
そのフォルダ内にPodfileが作成される。

今回作成されたPodFileの中身はこんな感じ。