Reigle 技術ブログ

プログラミング、IT関連の記事中心

Swift

ナビゲーションバーを透過させる【Swift】

■はじめに アプリケーションを開発していると、画像のプレビュー画面などでナビゲーションバーはつけたいけど透明にしておきたい。という場面が出てくる。 ここでは、ナビゲーションバーを透明にする方法と、透明から戻す方法を記載する。※ナビゲーションバ…

一定時間ごとに処理を実行する【Swift】

◾️一定時間ごとに処理 アプリケーションを作成していると、処理を一定時間毎に実行したい場合がある。(1秒毎にデータの更新処理をするなど。) そのような場合に、以下のように記載する事で一定時間毎に処理を実行する事ができる。※以下では、1秒毎の遅延処…

処理を遅延実行する【Swift】

◾️処理の遅延実行 アプリケーションを作成していると、処理を遅延して実行したい場合がある。(データの更新を行なった後、0.5秒後に処理をするなど。) そのような場合に、以下のように記載する事で処理を遅延させることができる。※以下では、0.5秒後の遅延…

画面サイズやステータスバーのサイズ【Swift】

◾️デバイスの各サイズの取得方法 UIをソースコードで実装したい場合や、動的にUIを調整する場合など、ソースコードでUIを変更することはよくあります。その際に、端末のサイズやナビゲーションバーの高さなどを取得したいことがあります。 それぞれのサイズ…

ソースコードで画面遷移【Swift】

■はじめに ボタン押下時の処理などで、ソースコードで画面遷移を実装したいことは多々あります。その際の画面遷移方法を記載します。 ◾️画面遷移 通常の画面遷移の方法を以下に記載します。※遷移先の画面を「SecondViewController」としています。 // 画面遷…

QRコードの生成【Swift】

◾️はじめに チャットアプリのフレンド登録など、様々な場面でQRコードを利用したい事があります。 ・QRコードを読み取り、取得した文字列に応じて処理を行う方法・QRコードを読み取り、取得したURLへアクセスしてAPIを実行する方法 上記の方法を想定してそれ…

QRコードリーダー【Swift】

◾️QRコードリーダーの実装 QRコードを読み取る方法を以下に記載します。読み取った後の処理は各自必要な処理を記載する必要があります。 import AVFoundation import UIKit class CameraViewController: UIViewController, AVCaptureMetadataOutputObjectsDe…

UIButtonを回転させる【Swift】

◾️UIButtonを回転させる 端末を回転させた時などで、表示しているボタンも回転させたい場合があります。その場合のボタンを回転させる方法を以下に記載します。※ボタン以外もほぼ同様の方法で可能です。 端末を回転させた時などで、表示しているボタンも回転…

動画のプレビュー【Swift】

■はじめに 画像は、UIImageViewを使用して画面に表示するだけだが、動画のプレビューはどうやって作ろう?と考える事がある。 ライブラリを使用するという手もあるが、ライブラリを使用しない場合の一般的には以下の方法になるかと思う。・AVPlayerViewContr…

動画や画像の圧縮【Swift】

■はじめに 画像(写真)や、動画(ビデオ)などを扱っていると、容量が大きくてサーバーへのアップロードに時間がかかったり端末の容量の圧迫につながったりと言う事があります。 このような場合に、容量を抑える方法を記載します。 ◾️画像の圧縮(縮小) 画…

Selectorで引数を渡す【Swift】

◾️はじめに アプリを開発していると、データベースから取得したデータを元に、UIButtonを生成する場合など動的にUIButtonを生成する事がある。UIButtonをソースコードで動的に生成する場合、ボタン押下時の処理でSelectorの指定が必要になるが、そのSelector…

端末の回転を検知する【Swift】

■はじめに 端末が回転した時に、何か処理をしたい時ってありますよね?(多くはありませんが。。。) 例えば、カメラで写真を撮る時に、横に傾けて撮影したら横の写真が撮れる!などなど! そんな時に、この方法を試してみてください。 ちなみに、ここでは「…

UserDefaults【Swift】

■はじめに アプリケーションを作成している時に、データを永続的に保存したい場合など、良くありますよね?※私はよくあります!! そんな時に、いくつかデータを保存する方法があります。その中でも今回は、「UserDefaults」について記載します。(他にも、…

UserDefaultsに配列・辞書を設定【Swift】

■はじめに UserDefaultsを使用していると、物足りなくなってきませんか?objective-cでは、簡単に保存できていた配列などがSwiftでは一手間が必要になります。 Swiftで配列などの複雑な型をUserDefaultsに保存する方法として色々方法はありますが、ここではU…

処理の共通化【Swift】

◾️はじめに アプリケーションの開発を行っていると、だんだんと同じ処理を様々なクラス内で書くことが多くなってきます。そのせいで、ソースコードの量が多くなり見返したときに読みづらいソースコードになってしまいます。※このせいでバグの調査が難航した…

キーボードに閉じるボタンを追加(UITextField,UITextView)【Swift】

■はじめに iOSのアプリを開発していると、UITextField、UITextViewに文字を入力した後にキーボードが閉じられないという問題に直面している人は多いでしょう。iOSの場合は、キーボードを閉じるためにも実装が必要になります。 ここでは、キーボードの上に「…

JSONの操作【Swift】

■はじめに APIなどを使用する上で、JSONのデータをよく利用する。ここでは、このJSON型のデータをSwiftで利用しやすいようにNSDictionary型へ変換する方法を記載する。 ◾️JSONデータをString型からNSDictionary型へ変換 APIのレスポンスデータをString型で取…

Realm【Swift】

■はじめに データを永続的に保存する方法で、数々の方法があります。以下に一例を挙げます。・UserDefaults・CoreData・SQLite・Realm ここでは、「Realm」に関して記載します。 ◾️Realm(レルム)とは Realm(レルム)とは、クロスプラットフォームに対応し…

アラートダイアログ【Swift】

■はじめに アプリを作成していると、ダイアログを表示したい場合がある。このダイアログには複数種類があるが、ここでは以下の種類のダイアログを表示する方法を記載します。 ・画面中央に表示される2択のダイアログ(削除の確認などでよく見ますね。)・画…

SQLite【Swift】

■はじめに データを永続的に保存する方法で、数々の方法があります。以下に一例を挙げます。・UserDefaults・CoreData・SQLite・Realm ここでは、「SQLite」に関して記載します。※SQL文に関しては、簡単なサンプルや記載方法は記載するが細かい部分は別途調…

クラス継承【Swift】

◾️クラス継承 クラス継承とは、あるクラスのプロパティ、メソッドを引き継ぎながら新しいクラスを作成する事である。継承する親のクラスの事をスーパークラス、スーパークラスを継承した子クラスの事をサブクラスという。サブクラスはスーパークラスの全ての…

イニシャライザ【Swift】

◾️イニシャライザ イニシャライザとは、クラスのインスタンス生成時に必ず実行されるメソッドの事である。以下の様にイニシャライザの定義を行う (記載ルール) class クラス名 { プロパティ メソッド init(){ // イニシャライザの処理 } } (例) class Cl…

オーバーライド【Swift】

◾️オーバーライド クラスを継承したが、あるメソッドは、スーパークラスのメソッドではなく、サブクラスのメソッドを使用したい場合がある。そのようなときは、以下のコードのようにoverrideを先頭に書いてメソッドを定義することで、スーパークラスの関数を…

アクセス修飾子【Swift】

◾️アクセス修飾子 アクセス修飾子とは、クラスやメソッド、プロパティなどがどこからアクセス可能であるかを設定する修飾子である。 Swiftのアクセス修飾子には以下がある。 【open】 モジュール外からもアクセスできる一番ゆるいアクセス修飾子である。 【p…

クラス,インスタンス【Swift】

◾️クラス,インスタンス クラスとは、プロパティ(データ)とメソッド(操作)を集めて1つにまとめたコードの事である。ただし、クラスはインスタンスという物を生成して始めてオブジェクトの役割を担うことができる。言わば、クラスは設計図、インスタンスは…

関数【Swift】

◾️関数 関数とは、特定の処理をする小分けにされたプログラムの事である。プログラムの中で何度も繰り返す一連の処理をそのまま記述すると、似たようなコードが散在してソースが見づらくなり、修正が必要になった時に時間がかかってしまう。そのような時は、…

戻り値【Swift】

◾️戻り値 戻り値とは、関数を呼び出したときに関数から返ってくる値の事である。以下のコードように関数の引数のあとに「-> 戻り値の型」を記述する事で値を返す関数を定義する事ができる。処理の中で「return 値」と記述すると関数の処理が終了し、呼び元に…

オプショナル型の「?」「!」の違い【Swift】

◾️オプショナル型の「?」「!」の違い オプショナル型の宣言で、型の後ろに「?」「!」が付いているが、この違いは以下である。「?」:nilを代入する事を許す。(オプショナル型)「!」:nilを代入する事を許し、変数を使用する時に強制的アンラップする…

オーバーロード【Swift】

◾️オーバーロード オーバーロードとは、関数名は同じだが、引数や戻り値が違う関数を定義する事である。以下に一例を記載する。(以下の例では、引数の型が相違する為、エラーにならない) (例) func funcA(sample:String){ // 関数の中の処理 } func func…

引数【Swift】

◾️引数 引数(ひきすう)とは、関数に値を渡す方法である。※引数は「,」で区切る事で複数指定する事が可能である。 以下の様に記載する。 (記載ルール) func 関数名(関数内で使用する変数名:データ型, 、、、){ // 関数の中の処理 } (例) func kansu(str…