プログラミング

【Xcode】@IBActionで紐付けする時にsenderを変更する方法

UISwitchのON/OFFを切り替えるには、@IBActionのsenderをUISwitchにしなければならない。 しかし、普通に紐付けすると、senderがAnyになってしまい、手作業でsenderをUISwitchに書き換えなければならない。 だが、またまたコミュニティでそのことを質問した…

【Swift】ターミナルでコードを即座に実行する方法

Xcodeで記述したコードが正しく実装できるかの動作テストは、 XCTest シミュレータ 実機 でなければ不可能。 しかし、ただ”コードの動作テストだけ"なら、ターミナルで実行することができる。 ターミナル上で、 $ swift と打てば、コマンドシェル?(対話型…

【Swift】senderを駆使した値渡し遷移

以下の記事で、値を渡しながら遷移する方法を述べた。 ↓ nekokichi2yos2.hatenablog.com しかし、その後にTwitterで違う方法で実装できる方法を返信ツイートで教えてもらったので、残す。 解説 ・普通なら、渡す用の変数に渡したい値を渡し、その変数をprepa…

【Swift】UserDefaultsに値を保存・取り出す方法

完成図 解説 ストーリーボード ソースコード 完成図 解説 ・UserDefaults:アプリ内に値を保存する ・UserDefaults.standard.set(保存したい値, forKey:"好きなキー"):値を保存 ・UserDefaults.standard.object(forKey:"好きなキー" ):setで設定した同じキ…

【Swift】画面遷移しながら値を渡す方法

完成図 解説 ストーリーボード ソースコード 完成図 解説 ・performSegue:指定したIdentifierのSegue(遷移)を実行する ・prepare:遷移する際に実行したいコードを実行する ・実際に遷移先の変数やメソッドなどに値を渡すコードは、prepare内で実装する ・…

【Swift】TableViewでセルの伸び縮みを再現してみた

完成図 解説 ストーリーボード ソースコード1 ソースコード2 完成図 解説 ・セルをタップすると、そのセルが縦に拡大する(伸びる) ・1番下のセルを押すと、なぜかそれよりも下の全てのセルも伸び縮みしてしまう (原因はわかりません。) ・セルをタップし…

【Swift】UIViewで左右からスライドを出現させる

完成図 解説 ストーリーボード ソースコード 完成図 解説 ・3つのStoryBoardを用いる ・色付けしたUILabelをスライドにした ・ContainerViewでViewの描画領域を確保する ・"Left"または"Right"のボタンを押すと、それぞれに対応するStoryBoardのUIViewContr…

【Swift】TableViewを使ったパララックスアニメーション

完成図 解説 ストーリーボード ソースコード ソースコード2 完成図 解説 ※注意 ・ソースコードが複雑で、僕もよくわかってない ・”パララックス”という視覚効果 ↓参考動画 youtu.be ・セルをスクロールすると、セル内のImageViewがパララックスの視覚効果を…

【Swift】MPMusicPlayerで音楽プレイヤーを作る

完成図 解説 ストーリーボード ソースコード 完成図 解説 ・プロセス 起動直後にライブラリから曲を選択させられる 選択して、左上の完了を押すと、プレイヤー画面へと移行 再生/停止ボタンを押せば、再生/停止ができる 中央のバー(ScrubBar)で好きな再生位…

【Swift】ImageViewの使い方

完成図 解説 ストーリーボード ソースコード 完成図 解説 ・プロセス 1つ目の画像が表示される 画面をタップ (4つ目まで繰り返し) 4つ目の画像をタップ (最初に戻る) ・viewDidLoad()する前にimage_arrayに画像を入れたかったが、エラーが出たので断念。…

【Swift,Xcode】Cannot use instance member...というエラーの対処法

備忘録として。 こういうエラーに遭遇した。 ↓ teratail.com ja.stackoverflow.com

【Swift】UIAlertControllerの使い方

完成図 解説 ストーリーボード ソースコード 完成図 ↓Alert ↓ActionSheet 解説 ・プロセス AlertController(Alertの外見)を生成 AlertAction(Alertの中身)を生成 present(Alertを発信)する ・Alert:中央に表示 ・ActionSheet:下に表示 ・title:見出…

【Swift】UserNotification(ローカル通知)の使い方

完成図 解説 ストーリーボード ソースコード 完成図 ↓destination == "Ken"の時 解説 ※注意点 ・今回はバックグラウンドでの実装 ・”送信する”を押して、すぐにアプリを閉じないと、ローカル通知が発動しない ・発動すれば、画面上部 & 通知センターに表示さ…

【Swift】CollectionViewのページめくりアニメーション

完成図 解説 ストーリーボード ソースコード 完成図 ↓1度目のスワイプ ↓2度目のスワイプ 解説 ※注意点 ・ページめくりを実装するには、 Scroll DirectionをHorizontalに指定 Scrolling - Horizontal Indicatorにチェック MidSpacingの値を0に指定 する必要が…

【Swift】PickerView&DatePickerの使い方

完成図 解説 ストーリーボード ソースコード 完成図 ↓”現在時刻”を押した場合 ↓”10分後へ”を押した場合 解説 「DatePicker」 ・日時を扱うなら絶対にこれ ・NSDate()や正確な日時を指定するのに必要な処理を省略できる ・現在時刻をdatePicker.date = Date()…

【プログラミング】キーボードの入力位置を変えずにdeleteする

普通にdeleteキーを押せば、 ↓ 左に入力位置が移動し、左の文字を消していく。 しかし、 入力位置を移動せず 右の文字を消していく が可能だとしたら? 方法は、delete + fn、キーの同時押し。 ↓ 右側の文字を消すのにわざわざ→キーを連打する人はおさらばで…

【Xcode】UserDefaultsでログイン機能 - 本格版

前回の記事で、UserDefaultsで簡易的なログイン機能を実装する方法を紹介しました。 しかし、ユーザー名に関係なく次回以降は無条件でログインできてしまう欠点がありました。 今回は、初回時に入力したユーザー名を入力しない限りログインできない仕組みを…

【Swift】tableViewでセルを表示する

完成画面 必要なプロセス プロセス - StoryBoard編 プロセス - ViewContoller編 ソースコード ※補足:セル上にテキストを表示させる方法について 完成画面 必要なプロセス プロセス - StoryBoard編 tableView、tableViewCellを配置 tableViewのIdentifierを…

【teratail】Firebaseに保存されてるデータの受け取り方

自分でFirebaseと連携する機能を実装した際、思い通りに動作しなかったので、復習として書きます。 質問 実現したいこと 困っていること 解決方法 解決後のコード 質問 teratail.com 実現したいこと Firebaseに保存した全てのデータをタイムライン形式でセル…

【Swift】UserDefaultsでログイン機能 - 簡易版

難しい機能を使わず、UserDefaultsで簡単にログイン機能を実装します。 ソースコード 初回ログイン時 次回ログインを省略 デメリット まとめ ソースコード 初回ログイン時 //StoryBoardに設置したUIButton @IBAction func login(_ sender: Any) { //もしtext…

【Xcode】Firebase関連のコードを消すと、Thread1 signal SIGBRTが消えた

新しくツイッター風のアプリを作ってて、初期画面が動作するからシミュレータを起動したら、Appdelegateの行でおなじみの”Thread1 signal SIGBRT”エラーが出ました。 そこで僕が行ったのは、 UI部品のキャッシュが残ってないか 初期画面で実行できない処理は…

【Swift】udemyでFirebaseを習ったので復習

Swiftで重要なFirebaseをudemyで学んだので、備忘録として書き記す。 Firebaseを使用する準備 AppDelegateにFirebaseのimport文と使用許可?のコードを書く。 ターミナルでpod関連をインストール データベースからデータを取得する流れ データベースの参照UR…

【Xcode】XCTestについて

XCTest(テスト)は、ViewController.swiftなどに書かれている関数をテストできる手法。 例えば、シミュレータや実機でアプリを起動しても、メソッドや関数がきちんと動作してるかは不明。 しかし、アプリではなく、関数という細部のテストをXCTestは可能に…

【Xcode】HomeBrewでcarthage updateを実行する際の注意点

僕と同じ二の舞を踏む人を減らすために、Homebrewを利用したcarthage経由のファイルをダウンロードする際の注意点を書いていきます。 いつエラーが起こったのか Cartfileのフォーマットは”rtf”ではなく”標準テキスト(プレーンテキスト)”にせよ ”xcrun: error…

【プログラミング】8/14~10/2まで行ってきたこと

現状を確認するため、1度学習してきたことを簡単にまとめて見ました。 Swift Swift学習の今後 Python Python学習の今後 まとめ Swift ・Progateを1周 ・”iOSアプリ開発集中講座”を2周 https://www.amazon.co.jp/たった2日でマスターできる-iOSアプリ開発集中…

【Swift】人生初めてのコードレビューを体験してみた

コードレビューの結果 反省点1:変数名に大文字を用いてない 反省点2:変数の役割を変数名で示していない 反省点3:Yes/Noなどの0/1分岐を数字で処理している まとめ MediaPlayerの使い方を学ぶ名目で音楽プレイヤーもどきのアプリを作ったのですが、 (…

【teratail】Todoリストに追加したタスクが即反映されない

質問 teratail.com 実現したいこと Todoアプリのタスク追加画面で追加したタスクを、タスクの表示画面に戻ったときに反映されるようにしたい 困っていること タスクを追加しても反映されておらず、アプリを再起動しないと反映されない 解決方法 viewWillAppe…

【teratail】シミュレータを起動したらThread1 : signal SIGABRT

質問 teratail.com 実現したいこと エラーを失くしたい 困っていること シミュレータを起動したらエラーが発生する 解決方法 実は、StoryBoardで設定したSegueの遷移方式がPushになっていて、それをShowに変更したらエラーが失くなった。 そもそもPushはiOS8…

【teratail】Todoアプリにスワイプで削除する機能を実装したい

質問 teratail.com 実現したいこと Todoアプリにスワイプ削除の機能を実装したい 困っていること 下記のコードで試したけど、エラーが出た。 func tableView(_ tableView:.....commit editingStyle: ....) { //選択したセルの番号 let index = IndexPath.row…

【Swift】iOSアプリ開発を学ぶ人が学ぶべきこと

Swift学習者がmustするべきこと Swift学習者にwantしてほしいこと 理想的なこと 最後に 現在僕は、udemyや自主制作でSwiftを学んでいますが、どれが最善の学習ルートが全くわかりません。 何せまだ1ヶ月の初心者ですから。 そこで、コミュニティ内で、 swift…