MILLEN BOX 2

個人iOSアプリ開発者hollymotoによる勉強の記録。時々雑記。

メッセージアプリ風テキスト入力があるサンプルアプリを作成した記録【Xcode11.5, iOS12.4, Swift5で確認】

LINEとかのメッセージアプリって、

  • 画面の下部にテキストボックスがあって、

  • キーボードが現れるとその高さ分テキストボックスが上がったり。

  • キーボードが消去されるとテキストボックスは元の位置に戻ったり。

という動作をしますよね。↓こうゆうやつのことです。
f:id:anthrgrnwrld:20200529071357g:plain

キーボードの高さに追従するようなテキストボックスの作成なんですが、これがなかなか難しい。AutoLayoutの制約とかUIResponderをうまく使って作ってあげなきゃいけないんです。
3年くらい前かな?一回作って完成させたんですよ。それを使ったアプリが「ポーン - プロフェッショナルな名言」です。

apps.apple.com

なのですが、、、、
いつの頃からかSwiftかiOSかのバージョンが上がったことを理由にビルドが通らなくなっちゃったんですよね...。
そこで3ヶ月くらい前ですかね、この仕組みを作り直しました。なかなかしんどかった。
今回は、同じようなことがあった時に見失わないように、ブログに記録しておこうと思います。

続きを読む

UITableViewの区切り線のすき間幅(Separator Inset)をコードで調整する方法 & Storyboardで調整する方法

TableViewのセルとセルの間の区切り線のすき間、気になりません??
これのことです。
f:id:anthrgrnwrld:20200525081234p:plain:w300
このすき間、UIKitではSeparator Insetと呼ぶみたいです。
今回はこのSeparator Insetを調整する方法を書いていきたいと思います。

目次

  • 1. Storyboardで調整する方法
  • 2. コードで調整する方法
    • 2.1 tableView(_:willDisplay:forRowAt:)(TableViewDelegate)を使って調整する方法
    • 2.2 UITableViewCellを継承したクラスで調整する方法
  • 3. まとめ
続きを読む

TableViewのSectionヘッダーやフッターの表示内容を変更する2つの方法

TableViewのSectionヘッダーとかフッターってありますよね。
こうゆうやつのことです(これはヘッダーです)。
f:id:anthrgrnwrld:20200522183956p:plain:w300

これ、UITableViewDelegateを継承してるViewControllerで tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?) -> UIView?をoverrideすれば出てきます(使い方はココの中のどこかに書いるはず)が、今回は表示内容(フォントの色とかサイズとか表示位置とか...etc)の変更方法をお送りします。

続きを読む

RealmでTabelViewControllerを使ったリスト表示アプリを作った

この記事で書いたリスト表示アプリをRealmで書き直したり、自分が流用しやすいように改造してみました。

f:id:anthrgrnwrld:20200416123832g:plain

以下の記事の続編みたいな感じです。

www.millenbox2.com

目次

  • 1. 変更ポイント
    • 1-1. 仕様
    • 1-2. Realm関連
  • 2. ソースコード
    • 2-1. TapDateObject
    • 2-2. RealmPrimaryKeyIncrementerProtocol
    • 2-3. ViewController
    • 2-3. ListViewController
    • 2-3. DetailViewController
  • 3. まとめ
続きを読む

CocoaPodsやCarthageを使わないでRealmを導入する方法

今日はモバイルデータベースライブラリのRealmをiOSアプリに導入する準備を行います。
このような外部ライブラリを管理してくれる仕組みとしてCocoaPodsやCarthageがありますが、これらでライブラリをプロジェクトに新規でインストールするには、当然ながらネットワークの接続が必要となる時があります。私は移動中に勉強することが多くいつもいつも太い回線を使える訳では無いため、ちょっとした動作確認の際に管理ツールを使わないで済ましたい時がよくあります。
今回は本当によく使うライブラリであるRealmの「CocoaPodsやCarthageを使わないで」導入する方法を備忘録として残したいと思います。

続きを読む

間違ってTerminalでSwiftの実行環境に入ってしまった場合は落ち着いてコレをしよう

小ネタです。
「今入ってるSwiftのバージョンって何だっけ?」 と思い、Terminalに swift と打ち込みました。オプションのガイドみたいなのが出力されると思って気軽に打ち込んで見たのですが、出てきたのは意図していないものでした。

続きを読む