ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

Swift

String(format:)

String(format:)を使うとsprintf的なことができる。 ただ文字列と思って%sを使うとクラッシュする。 文字列はオブジェクトだから%@にしなきゃいけないのを忘れてた。 String(format: "%@,%d", "123", 456) Playgroundで試していたらString(repeating:count:)…

2 duplicate symbols for architecture arm64

久しぶりにテストを実行しようとしたらコンパイラが通らなくなってた。 2 duplicate symbols for architecture arm64 違った。テストしようとしたタイミングでコードも変更してて、それが悪くて通常も通らなくなってた。 Report navigatorで確認すると何が重…

TextField

TextFieldで編集が終わったら値をセットする方法。 Optionalを扱うモデルを用意してBindするところまで。 OptionalだとTextFieldにBindingできないのでView内のメンバnameで一旦受ける。 onAppearのタイミングでセットする。 import SwiftUI // CoreDataを想…

UndoManager

Swiftになって勝手が違うのでこちらを後で読む developer.apple.com いろいろ巡ってここに辿り着く kouki.hatenadiary.com Obj-Cの時と同じという結論に至る。 ViewはStructureなのでUndoManagerのターゲットにはなれないのでモデルかビジネスロジックの方に…

NavigationLink で遷移してから戻る場合

developer.apple.com presentationMode.wrappedValue.dismiss() で戻れる struct SomeView: View { @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode> var body: some View { Button { presentationMode.wrappedValue.dismiss() } label: { T</presentationmode>…

Label

developer.apple.com Image使わなくてもアイコン表示できる。 Label("Lightning", systemImage: "bolt.fill") labelStyleでアイコン指定してても非表示にできる。 Label("Lightning", systemImage: "bolt.fill") .labelStyle(.titleOnly) 自分でStyleを作る…

ViewでOptionalの扱い

ずっとOptionalの扱いで悩んでいて、モデルにラッパーとなるオプショナルがない変数を追加して対処していた。 Viewのメンバ変数で一旦受けて処理すればいいのか。 今まで気づかないとかアホすぎた。 zenn.dev

editMode

developer.apple.com EnvironmentValuesとして扱っている。 ドキュメントより @Environment(\.editMode) private var editMode @State private var name = "Maria Ruiz" var body: some View { Form { if editMode?.wrappedValue.isEditing == true { TextFi…

NavigationLink

NavigationViewのリンク NavigationViewはdeprecatedになって NavigationStack か NavigationSplitView を使うという事らしい。(iOS 16から) developer.apple.com 最初のブロックはリンク先となるViewを指定する。 labelのブロックではcellの中身を指定する…

SwiftUIでモーダル表示

モダンな表示をする場合 .sheet()を使用 capibara1969.com フル画面で表示する場合 . fullScreenCover()を使用 capibara1969.com

SwiftUIでFlipアニメーション

betterprogramming.pub これで回転させられる。 SomeView.rotation3DEffect(Angle(degrees: 10), axis: (x: 0, y: 1, z: 0))

7セグフォント

DSEG7 フォント、これいい qiita.com ダウンロードしたttfファイルをXcodeにドラッグしinfo.plistにフォント名を登録で使えるようになる。 info.plistへの記述 Text("00:00") .font(.custom("DSEG7Classic-BoldItalic", size: 200))