プログラミング

【Swift】起動時にStoryboardIDで画面を分岐

どうも、ねこきち(@nekokichi1_yos2)です。 初回起動、もしくはログイン状態で表示する画面を分岐する処理を備忘録として書き残します。 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.Connec…

【Swift】SVProgressHUDが中央に表示されない問題

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、SVProgressHUDの不具合について。 普通にポップアップを表示しても、中央に表示されず、画面端に表示されてしまいます。 解決法は、現在のウィンドウを取得する、だそうです。 AppDelegateでUIwindowを…

【Swift】UICircularProgressRingでタイマーを作る

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、UICircularProgressRing、で”プログレスバーを搭載したタイマー”を実装する。 ↓ github.com (参考) ↓ qiita.com 完成 解説 ソースコード 完成 解説 UICircularProgressRingでは、 UICircularProgressR…

【Swift】SideMenuでサイドメニューを作る

どうも、ねこきち(@nekokichi1_yos2)です。 今回は多くのアプリで使われている、サイドバー/サイドメニュー、を下記のライブラリで実装します。 ↓ github.com (参考) ↓ qiita.com kimagureneet.hatenablog.com 解説 準備 実装 - ViewController 実装 - T…

【Swift】tableViewで無限スクロールを実装してみた

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、tableViewで無限スクロール、を実装。 解説 ソースコード 結果 解説 仕組みは スクロール開始 (num.count -10)番目の要素が表示された numにnumの全要素を追加 スクロール終了 スクロール時のnumの要…

【Swift】UI部品を設置する時のテンプレ

どうも、ねこきち(@nekokichi1_yos2)です。 Xcodeに内蔵されてるUI部品、ライブラリで生成するUI部品、構成や扱いが異なっても、UIViewに設置する工程は変わりません。 生成から設置までの流れは、 生成(let 変数 = UI部品) 位置(変数.frame = CGRect(.…

【Swift】StoryBoard IDを遷移する時の注意点

どうも、ねこきち(@nekokichi1_yos2)です。 StoryBoardIDで遷移する時、下記のコードだとnilが返されて、エラーになります。 let vc = self.storyboard!.instantiateViewController(withIdentifier: "遷移先のStoryBoardID") as! 遷移先 self.present(vc, …

【Swift】スワイプ動作を実装

どうも、ねこきち(@nekokichi1_yos2)です。 スワイプ 動作の実装は、UISwipeGestureRecognizer、を使用。 疑問 結論 ソースコード 疑問 スワイプ動作を実装するUIGestureには、UIScreenEdgePanGestureRecognizer、がある。 だけど、ViewControllerに設置し…

【Swift】多次元配列を昇順でソート

どうも、ねこきち(@nekokichi1_yos2)です。 Int型の多次元配列をソートする方法が載ってなかったので、備忘録として記載。 バブルソート、というアルゴリズムを使うと、簡単に実装できました。 今回のバブルソートを実装する際、下記を参考にさせていただ…

【Swift】UISliderで5刻みに値を表示させる

どうも、ねこきち(@nekokichi1_yos2)です。 今回は、5を一定間隔とする、5刻みのスライダーを作ります。 (5、10、15、20、25、30....) また、UISliderの幅を、0〜1000、とします。 解説 ソースコード 結果 解説 結論から言うと、 if UISlide…

【Swift】現在の、年/月/日/時/分/秒、を別々に取得

どうも、ねこきち(@nekokichi1_yos2)です。 現在日時を取得する方法ですが、ネットの記事のほとんどが 2020-03-12 15:11:02 の形で算出する方法しかなかったので、備忘録として記載。 ソースコード let current = Calendar.current print(current.componen…

【Swift】UUIDで重複しない固有IDを作る

どうも、ねこきち(@nekokichi1_yos2)です。 データベースにデータを保存する場合、 「どうやってユーザーとデータを紐付けるか」 の問題が発生します。 当然、ユーザー別に固有のID(データの羅列)が必要ですので、 乱数 が思いつきます。 しかし、乱数は…

【Swift】ScrollViewでページングを実装

こんにちは、@nekokichi1_yos2です。 ScrollViewでページ送りのアニメーションを実装する場合、下記のコードを打つか、 scrollView.isPagingEnabled = true インスペクタの"Paging Enabled"にチェックを入れます。 初期設定のScrollView ↓ PagingEnabledが可…

【Swift】ScrollViewで何ページ目か(現在地)を確認

こんにちは、@nekokichi1_yos2です。 (ページングの実装) ↓ nekokichi2yos2.hatenablog.com ScrollViewで今現在、何ページ目かを知りたい時、contentOffset、を使えばわかります。 contentOffsetとは、初期位置(0,0)からどれだけ移動したかを示すもの。 (…

【Swift】年/月のPickerViewをInt型で作る

こんにちは、@nekokichi1_yos2です。 MoneyMonthで年と月だけのPickerViewを作る際、Data型で作る方法が見当たらず、仕方なくInt型で作りました。 nekokichi2yos2.hatenablog.com Data型だと、どうしても日にちや時間を含めてしまい、〇〇だけを取得する方法…

【Swift】Invalid document reference. Document...について

Firebaseを利用中に下記のエラーに遭遇。↓'Invalid document reference. Document references must have an even number of segments, but User has 1' 直訳すると、"ドキュメントを参照できません。参照には偶数のセグメントが必要、しかしユーザーは既に1…

【Swift】staticで1つのインスタンスを共有

解説 ストーリーボード ソースコード 出力結果 解説 全ファイルで変数や値を共有したくありませんか? クラスのインスタンスって基本的に生成したファイル内でしか使えません。 関数やメソッドなら、渡したい引数さえ用意すれば、後は処理や返り値を返してく…

【Swift】Firebase - メアド&パスワードで会員登録/ログイン

完成図 会員登録 ログイン パスワードリセット 解説 会員登録 ログイン ログアウト パスワードリセット ストーリーボード ソースコード 会員登録画面 ログイン画面/ログアウト ログアウト 完成図 会員登録 ログイン パスワードリセット 解説 会員登録 Auth.a…

【Swift】スクロール画面に大量のUIButtonを等間隔で配置

完成図 解説 ストーリーボード ソースコード 完成図 解説 「手順」 ScrollViewを設置 UIViewを生成 UIButtonを生成 UIButton.frameを設定 UIButton.tagを設定 UIButtonに文字や処理を設定 UIViewに設置 3~7をループ ScrollViewにUIViewを設置 ScrollView.con…

【Swift】Firebaseから取得するデータを調べてみた

保存してあるデータ 解説 デバック結果 ソースコード 保存してあるデータ 解説 Firebaseからデータを取得する時、 どのような型(クラス)で取得されるのか? どんなメソッドがあるのか? という疑問が湧かないだろうか? udemyで初めてFirebaseを知り、自分…

【Swift】Firebaseに画像を保存/画像を読み込む

完成図 解説 ソースコード 完成図 「操作画面」 「保存されているデータ」 解説 Firebaseから画像を取得するには、2つの方法がある。↓ Storageの参照で取得 FiirebaseUIで取得 (参考ページ) firebase.google.com 前者は一般的な方法だがクロージャやエラ…

【Swift】アルバムとカメラを起動する

完成図 解説 ソースコード 完成図 (アルバム画面はEvernoteのものです。) 解説 過去に同じ記事を書いたが、 ソースコードがわかりづらい ただソースコードが書いてあるだけ というテキトーな記事だったのに、新たに書き直した。 ※注意 下記のソースコード…

【Swift】遷移時(modalのsegue)のアニメーションをコードで実装

解説 ストーリーボード ソースコード 解説 segueのアニメーションは以下。 coverVertical:下から出現 crossDisolve:フェードイン flipHorizontal:180度回転する(裏返る) partialCurl:ペラっとめくれる 遷移先をインスタンスで取得し、modalTransitionSty…

【Swift】UserDefaultでMainStoryBoardを分岐

解説 ストーリーボード ソースコード 解説 UserDefaultsのbool値でStoryBoardを分岐。 AppDelegate.swiftのdidFinishLaunchingWithOptions内に記述。 今回だと、 true : Main.storyboard false : test.storyboard のそれぞれに分岐。 FirebaseやNiftyCloudで…

【Swift】ImageViewにタップアクションを追加

完成図 解説 ソースコード 完成図 解説 ImageViewにButtonのようなタップアクションを追加するには、 ImageViewのisUserIntaractionEnabledをtrueにする(StoryBoardからも変更可) ImageViewにUI部品のTapGestureRecognizerを追加 TapGestureRecognizerを@I…

【Swift】文字列をURLに変換し、たった1行で開く方法

完成図 解説 ソースコード 完成図 解説 WebViewを経由することなくsafari経由でURLを開ける。 WebViewの場合は、 //URLを受け取る変数 let url = URL(string: url_word) let urlrequest = URLRequest(url: url!) webview.loadRequest(urlrequest) と記述で実…

【Swift】NavigationBarに検索バーを設置

完成図 解説 ソースコード 完成図 解説 検索バーを設置するには、ViewがNavagationControllerを継承している必要がある。 予め、Embed In で継承しておこう。 また、検索バーをSNSやクラウド共有アプリで使用する際、searchBar専用のメソッド(searchBarSear…

【Swift】カスタムフォントを設定 - StoryBoard編

完成図 解説 ストーリーボード 完成図 今回使用したカスタムフォントは、GoogleFontから入手 ↓ fonts.google.com 解説 カスタムフォントの実装方法は、 カスタムフォント(.ttf , .otf)を用意 左のフォルダに追加 プロジェクトファイル → TARGETS → BuildPh…

【Swift】TextViewのキーボードに"閉じる(Done)"ボタンを追加

完成図 解説 ソースコード 完成図 解説 UITextFieldはDelegateメソッドでキーボードを閉じられる。 だが、UITextViewには明確な方法がない。 touchesBegan内でresignFirstResponderを実行しても閉じられない始末。 そこで、キーボード内にキーボードを閉じる…

【Swift】MFMailComposeVCでメールを送信する

完成図 解説 ソースコード 完成図 解説 新規メールを起動し、指定したメアドにメールを送れる。 ・設定できる項目は 宛先 Cc Bc 件名 本文 の5つ。 参考になった動画がこちら。 ↓ 注意点が1つ。 スマホの環境設定からメールのアカウントを追加しないと起動…