バッテラが如く

プログラミングしましょ!

SwiftUI

【SwiftUI】SwiftUI記事まとめ

はじめに どうも、バッテラです。 SwiftUIの記事が増えてきたので、まとめをつくりました。 はじめに ビュー関連 List Image ScrollView Text Color Stack プログラム関連 基本文法 PropertyWrapper モディファイア 画面遷移/ナビゲーション NavigationLink …

【SwiftUI】Listをスクロールさせた時にバウンドさせないようにする方法

はじめに Listでスクロールさせると上下で↓のようにバウンドしますよね? このバウンドをさせなくする方法について共有したいと思います。 バウンドをさせなくするには UITableView.appearance().bounces = falseを呼び出すだけでOKです struct HogeView : V…

【SwiftUI】ListでNaigationLinkすると選択状態になってしまう件について

■開発環境 MacOS Monterey (12.1) 事象 選択状態を解除する 参考にしたサイト おわりに 事象 Listでセルをクリックしたら画面遷移するのを作りました(↓参照) 動画見てもらうとわかると思うのですが戻ってきた時にそのセルが選択状態になっています。 ※iOS15…

【SwiftUI】前の画面に戻る方法 (NavigationLink、sheetで遷移)

はじめに 今日はSwiftUIの勉強していきます。 NavigationLinkやsheetを使って別画面を表示した後にコードで戻る処理を書きたいときがやってます。 今回はコードで前の画面に戻る方法について共有したいと思います。 はじめに 環境 コードで前の画面に戻る お…

【SwiftUI】何もないところを押したらキーボードを閉じさせる方法

今日はSwiftUIの勉強していきます。 TextFieldやTextEditorのようなキーボードが表示される場合に、キーボードが表示されたままで閉じれないことがありました。 とりあえず背景部分をタップしたらキーボード閉じるという方法がわかったので共有します。 ■開…

【SwiftUI】ダークモードを回避する方法

はじめに 今日はSwiftUIの勉強していきます。 iOS13でダークモードの概念が加わりました。 iPhoneやiPad側の設定で簡単にダークモードとライトモードの切り替えができるようになっています。 開発者は各モードを対応しないといけないかというとそうではなく…

【SwiftUI】sheetによるモーダル画面遷移方法

Xcode (13.3.1) はじめに モーダルで画面遷移する コードで前の画面に戻る方法 @Environmentで戻る方法 (iOS15で可) おわりに はじめに 今日はSwitUIの勉強していきます。 今回はsheetという機能を使った画面遷移について共有したいと思います。 モーダルで…

【SwiftUI】アラートダイアログの基本的な使い方

この記事の情報は次のバージョンで動作確認しています。 * MacOS Monterey (12.1) * Xcode (13.3.1) はじめに アラートダイアログを表示 ダイアログを表示するトリガーを作成 ダイアログを表示する処理を作る Alertを使うともっと直感的に実装できます。 は…

【SwiftUI】スワイプメニューで削除機能を作る (レシピ)

はじめに 今日はSwiftUIの勉強していきます。 リストなどでスワイプメニューを表示して項目を削除するレシピ記事になります。 はじめに 環境 その1 (Textのみ) その2 (Imageのみ) おわりに 環境 この記事の情報は次のバージョンで動作確認しています。 * M…

【SwiftUI】@Stateの基本的な使い方 (PropertyWrapper)

はじめに 今日はSwiftUIについて勉強していきます。 SwiftUIで@がついた変数をPropertyWrapperというらしいですが、その1つに@Stateがあります。 今回は@Stateについて基本的な使い方について共有しようと思います。 はじめに 構文 イニシャライザで変数を…

【SwiftUI】Viewが再描画されているか確認する方法 (_printChanges ログ確認)

Xcode (v13.3.1) はじめに _printChangesを使う 再描画されないケースとは? おわりに はじめに 今日はSwiftUIのデバッグ方法についてです。 SwiftUIはViewの再描画を強制することができません。 なので再描画されたかを確認することがSwiftUIの基本ムーブに…

【SwiftUI】Listでセル(子View)が再描画されない件について

この記事の情報は次のバージョンで動作確認しています。 MacOS Monterey (12.1) Xcode (13.3.1) はじめに 事象について 挙動 ダメなプログラム例 解決方法 Listの子Viewは値を渡すだけにする ToggleやTextFieldは使いたい場合 (未解決) どうしても解決できな…

【SwiftUI】List内のアイテムの背景色を透明にする方法

はじめに 今日はSwiftUIのListについて勉強していきます。 Listは勝手に背景色ついてしまうことで大元の背景色とバッティングするケースありませんかね? 言いたいのは↓のような時です。 私はそもそもListに背景色いらないと思ってるので背景色を消す方法に…

【Swift】オリジナルのColorを作って使う方法 (Assets)

はじめに 今日はSwiftUIのColorについて勉強していきます。 SwiftUIというかXcodeではColorをリソースとして定義することができます。 今回はAssetsでColorを作るところから使うところを共有しようと思います はじめに 環境 AssetsでColorを作る Floating po…

【SwiftUI】SwiftUIだと繰り返し処理はforではなくForEachを使わないといけない

Xcode (13.3.1) はじめに これはダメな例 代わりにForEachを使おう おわりに はじめに タイトルの通りSwiftUIのbodyの実装ではforやforEachは使えないという洗礼を受けてしまったのでそこを共有していこうと思います。 これはダメな例 Listの中にfor文で5個…

【SwiftUI】NavigationLinkで勝手に表示される矢印を消す方法

この記事の情報は次のバージョンで動作確認しています。 MacOS Monterey (12.1) Xcode (13.3.1) はじめに ZStackとEmptyViewを使って消す 参考にしたサイト おわりに はじめに 今日はSwiftUIの勉強していきます。 画面遷移で使うNavagationLinkを使うと分か…

【SwiftUI】ListだとButtonのタッチ判定がList全体になってしまう問題の対処方法

はじめに 今日はSwiftUIを勉強していきます。 議題としてはList内のアイテムにButtonを入れた場合に起きる問題についてです。 普通はButtonをタッチしたらボタンイベントが呼ばれますが、List内のButtonはどこ押しても反応するようになります。 今回はその事…

【SwiftUI】NavigationViewで変な空白ができてしまった件について

はじめに 今日はSwiftUIを勉強していきます。 画面遷移でよく使うNavigationViewを使っていて起きた問題について共有したいと思います。 はじめに 環境 現象 原因 対処 参考にしたサイト おわりに 環境 この記事の情報は次のバージョンで動作確認しています…

【SwiftUI】Listの基本的な使い方 (Viewを並べる時に使います)

Xcode (13.3.1) はじめに 基本構文 ヘッダーとフッターを表示 リスト内のアイテムをタップを検知する方法 リスト内のアイテムをタップしたら画面遷移させる VStackとの使い分け listStyleで見た目を変えられる PlainListStyle InsetListStyle GroupedListSty…

【SwiftUI】fontモディファイアの基本的な使い方

はじめに 今日はSwiftUIについて勉強していきます。 SwiftUIで文字のカスタマイズにはfontモディファイアというものを使います。 今回はfontモディファイアの基本的の使いかたと機能をピックアップして共有しようかと思います。 はじめに 環境 基本構文 固定…

【SwiftUI】Colorをカラーコード(16進数)で初期化できるように拡張する (extensionを使う)

はじめに Colorはr,g,bの値を0.0〜1.0で指定して初期化して使うわけですが、 HTMLだと#ff0000などのカラーコードを使って色を指定するやり方が多いですよね。 Webのデザインを参考する際にカラーコードしか書いていないため、Swift用にいちいち0〜1.0に変え…

【SwiftUI】ScrollViewの基本的な使い方

はじめに 今回はScrollViewの使い方についての記事です。 はじめに 環境 構文 特性 Listとの使い分け おわりに 環境 この記事の情報は次のバージョンで動作確認しています。 * MacOS Monterey (12.1) * Xcode (13.3.1) 構文 ScrollView { VStack { } } VStac…

【SwiftUI】@Bindingの基本的な使い方 (PropertyWrapper)

はじめに SwiftUIで@がついたものをPropertyWrapperというらしいですが、その1つに@Bindingがあります。 今回は@Bindingについて深ぼる記事になります。 はじめに 概要 構文 関連性 親Viewは@State、子Viewは@Binding 子Viewの定義 子View側で書き換えるの…

【SwiftUI】View全体を左寄せにする方法

はじめに デフォルトだと全体的に中央寄せになるので、左寄せにする方法を調査しました。 色々やり方があったのでそれらをまとめた記事です。 はじめに 環境 VStackを使って全体的に左に寄せる おわりに 参考にしたサイト 環境 この記事の情報は次のバージョ…

【SwiftUI】PropertyWrapperの使い方まとめ

はじめに PropertyWrapperとは以下のキーワードの事です。 @State @Binding @Published @StateObject @ObservedObject @EnvironmentObject これらはSwiftUI専用の仕組みなのですが、これを知らないと絶対にアプリを作れないので確認しておきましょう。 はじ…

【SwiftUI】NavigationViewの基本的な使い方

はじめに NavigationViewについてまとめた記事です。 StoryboardにあったNavigationControllerとは全く別物になっています。 はじめに 基本構文 モディファイアをかける場所に注意 ヘッダータイトルを表示する ヘッダーの右側にボタンを配置 ヘッダーの左側…

【SwiftUI】Colorの基本的な使い方

はじめに SwiftUIにおいてColorは一番多様するキーワードだと思うのですが、 いろいろな使い方ありそうだったのでこの記事でまとめようかと思います。 はじめに カラー定数を使うパターン デフォルト定義されているColor定数 自分でRGB値を指定したい場合 ア…

【SwiftUI】モーダルビューの作り方 (レシピ)

はじめに モーダルビューというのは画面の上に別の画面を乗せるやつです。 iOSアプリで良く見かけると思いますが、 SwiftUIでやる方法についてまとめた記事になります。 はじめに モーダルビューの作り方 モーダルビューを表示(遷移)するには モーダルビュー…

【SwiftUI】TextFieldの基本的な使い方 (テキスト入力で使うやつ)

Xcode (v13.3.1) はじめに 基本構文 枠線をつける方法1 枠線をつける方法2 フォントを変えるには? frameでサイズは変えられない? 参考にしたサイト おわりに はじめに テキストフィールドとは下図のようなやつです。 TextFieldはユーザーに文字を打ち込…

【SwiftUI】ボタンデザイン (レシピ)

はじめに SwiftUIはボタンデザインは自由に作れるようになります。 しかし、その自由が逆にどうしていいかわからんくなります。 今回はこんなデザインができるよというレシピ記事になります。 はじめに レシピ1 イメージ コード レシピ 2 イメージ コード …