アプリ開発の逆引き辞典

アプリ開発のTipsをまとめました

SwiftUIで ひとつのViewから複数のシートを表示する

ひとつのViewから複数の画面をモーダルへ遷移したい。ボタンを複数用意して、それぞれ対応する画面をモーダル表示させようとしたがうまくいかない。 .sheet() modifierを設定すれば、モーダル表示できることは知っているが、それぞれ異なる複数の画面への遷…

SwiftUIで 正方形のViewを表示できない

正方形の形のViewを作成できなかった。どうすればよいのか? 実行環境 Xcode 11.6 iOS 13.6 問題の挙動 横いっぱいの正方形のViewを表示したい。具体的には下図のようにしたい。 横いっぱいにするには .frame(maxWidth: .infinity) を指定すれば良い。 impor…

SwiftUIで NavigationViewのタイトルにカスタムフォントが反映されない

NavigationViewのタイトルには Text() を指定できるが、タイトルに対して font Modifierを設定してもカスタムフォントが反映されなかった。 実行環境 Xcode 11.6 iOS 13.6 問題の挙動 あらかじめFontクラスでカスタムフォントを返す拡張メソッドを追加した。…

SwiftUIで Textのフォント指定にUIFontが使えない

Text() のフォント指定にUIFontが使えなかった。どうしたらよいのか? 実行環境 Xcode 11.6 iOS 13.6 問題の挙動 UIFont.futuraMediumFont(ofSize:) のようにカスタムフォントを使いやすくするユーティリティクラスを作成している。 import UIKit extension …

SwiftUIで NavigationViewでdisplayModeを指定するとアプリ実行時にクラッシュする

NavigationViewでdisplayModeを指定すると、起動時にアプリがクラッシュした。Xcode 12 beta 2で修正されたようだが、Xcode 11.6であればかならずクラッシュが発生してしまう。 実行環境 Xcode 11.6 iOS 13.6 問題の挙動 これは実行できる。 struct HomeView…

SwiftでisKindOfClassメソッドを使う

Objective-Cで特定のクラス(またはサブクラス)であるかどうか判定する場合には、[view isKindOfClass:[UIImageView class]]を使っていた。 swiftでは以下のように書くことができる。 view.isKindOfClass(UIImageView)

Swiftで乱数(ランダムな値)を生成する

特定の範囲の乱数を求める際には、Objective-Cと同じようにarc4random関数を使うことができます。 //0から9までの値を取得する let random = arc4random() % 10 上記のコードではarc4random関数で得た乱数の余剰を求めているため、arc4random関数では生成さ…