CATEGORY

技術記事

iOS15以降でUISearchBarにカスタムフォント(NotoSansJapanese)を指定すると、テキストのベースラインがずれてしまう

はじめに iOS15以降で、UISearchBarのsearchTextField.fontプロパティにNotoSansJapaneseを指定した際に、編集完了するとテキストのベースラインがずれる現象に遭遇したため、原因とその対応についてまとめました。 調べたこと UISearchBarのビュー構造 UIsearchBarのView Hierarchyをデバッグしてみると、テキストが載っているビュ […]

オートレイアウトでtableHeaderView, tableFooterViewを正しくレイアウトする【Swift】

はじめに UITableViewを使用していると、ヘッダーやフッターを実装したい場面は少なくないと思います。tableHeaderViewやtableFooterViewを利用するのがメジャーと思いますが、オートレイアウトで設定するとレイアウトが崩れてしまう場合があります。 この記事では、tableHeadetView, tableFooterViewの使用一例と、オートレイアウトでも正しくレイア […]

UINavigationControllerによる画面遷移のアニメーションを変更する

UINavigationControllerを使用して画面遷移する際、基本的にはプッシュアニメーションが使用されますが、ある特定の画面に遷移するときのみ画面遷移のアニメーションを変更したいときに使えるコードのメモ📝 以下はUINavigationControllerのカスタムクラスを作成し、画面遷移メソッドをオーバーライドしたやり方です。SearchViewControllerというViewCon […]

prepareForReuse()内に書くべきこと【Swift】

はじめに iOSアプリ開発において、UITableViewCellやUICollectionViewCellを利用する場面は多いと思いますが、セルの再利用について考えることは避けて通れません。私はセルの初期化タイミングってこれで良いのだっけと思いつつ、なんとなくprepareForReuse()メソッド内にセルの初期化処理を書いていました。 私と同じように「とりあえずprepareForReuse […]

カスタムフォントの追加とローカライズ設定の手順【Xcode】

はじめに カスタムフォントの導入とローカライズ設定する機会があり、簡単だったので手順をまとめました。 フォントの追加手順 1. 使用したいフォントの追加 使用したいフォントをXcodeに追加します。(デフォルトで入っている場合は問題ないです)私はGoogleFonts をよく利用しています。デザイナーさんもよく使っていると聞いたのと、オープンソースのフォントを簡単に検索できて、サポートしている言語 […]

ネットワークの速度をターミナルから確認する

遅ばせながら最近やっとmacOSをMontereyにアップデートしました。macOS Monterey (macOS 12~)でネットワークの応答速度を測定するコマンドラインツールが追加されたと聞いたので試してみました。これまでは速度を測定するサイトをいちいち開いて確認していたので便利ですね。 ターミナルを開いて以下のコマンドでネットワークの応答速度をチェックできます。 アップロードとダウンロード […]

画像をカメラロールに保存する【Swift5】

はじめに 画像をiPhoneの”写真”アプリのカメラロールに保存する実装をしたいときがあったのですが、単純にUIImageを保存するとEXIF情報や位置情報が失われてしまいました。 本記事では、まず単純にUIImageをカメラロールに保存する手順を説明し、次にEXIF情報などを保持したまま画像を保存する手順について説明しています。 UIImageの保存 カメラロールにUII […]

【iOS】カメラやBluetoothなどのアクセス許可設定を変更するとアプリが終了する

はじめに iOSアプリでは、カメラやBluetoothなどを使用するときにはシステムへのアクセス許可が必要となります。 こちらをiPhoneやiPadの設定アプリで変更すると、対象のアプリがクラッシュしてしまい焦ったことがあったので、こちらで共有しておこうと思います。 iOSの仕様 結論から言いますと、アプリがバックグラウンドで起動中に、iPhoneの設定アプリでプライバシーなアクセス許可設定(写 […]