Swift言語はじめました

Rightです。

最近、iPhoneアプリを作成するために、Swift言語を学び始めた。
本記事では、Swiftで使用した文法やXcodeの機能についてまとめる。(随時更新)

# １.Swiftの基本文法
本章では、Swiftの基本文法についてまとめる。

## 文字表示
<dl>
    <dt>Text(" ~~~~~~ ")</dt>
    <dd>文字を表示する。</dd>
    <dd>.font(.system(size: ***, weight: xxx, design: @@@))　　//文字のフォント指定</dd>
    <dd>.padding()　　// 余白追加</dd>
    <dd>.Spacer()　　// 空白表示</dd>
    <dt>Button{　　} label: { Text(" ~~~~~~ ") }</dt>
    <dd>ボタンを表示する。</dd>
    <dd>.foregroundColor(Color.***)　　//ボタンの文字色を変更</dd>
    <dd>.background(Color.***)　　//ボタンの背景色を変更</dd>
    <dd>.frame(width:***, heght:***)　　//ボタンの大きさを変更</dd>
    <dd>.cornerRadius(radius:CGFloat)　　//ボタンの角を丸くする(※必ず.frameの後ろに書く)
    <dd>.lineLimit(1)　　//表示行数を1行に制限する
    <dd>.minimumScaleFactor(**)　　//文字がフレームに収まらないとき係数**(0.0〜1.0)だけ縮小する
</dd>
    <dt>let ***: xxx</dt>
    <dd>定数。(***は定数の名称)</dd>
    <dd>xxxは型名。</dd>
    <dt>var ***: xxx</dt>
    <dd>変数。(***は変数の名称)</dd>
    <dd>@Stateをつけると値が更新されるたびにView(画面)に反映される。</dd>
    <dd>画面Aの@State付き変数を画面Bで更新する場合は@Bindingをつける。</dd>
    <dd>※画面Aから画面Bへ@State付き変数を渡すとき、$をつけること。</dd>
    <dd>xxxは型名。</dd>
    <dt>VStack { ~~~~~~ }</dt>
    <dd>縦方向に表示する。</dd>
    <dt>HStack { ~~~~~~ }</dt>
    <dd>横方向に表示する。</dd>
    <dt>ZStack { ~~~~~~ }</dt>
    <dd>画面を重ねて表示する。</dd>
    <dd>Color.black　　//背景色を黒にする。</dd>
    <dd>.ignoresSafeArea()　　//画面端にも背景色を適用する。</dd>
</dl>

## 型名
<dl>
    <dt>配列</dt>
    <dd>[[String]]：文字列の２次元配列</dd>
    <dt>その他</dt>
    <dd>CGFloat：座標やサイズを表す際に使用される専用の型。</dd>
    <dd>UIScreen.main.boundsを代入することで高さ(.height)や幅(.width)を取得できる。</dd>
    <dd>例）</dd>
    <dd>let tmp: CGFloat = UIscreen.main.bounds.width</dd>
    <dd>画面の横幅をtmpに格納。</dd>
</dl>

## 条件分岐(if文)
<dl>
    <dt>if ***.contains(xxx) { ~~~~ } else if @@@.contains(xxx) { ~~~~ } else { ~~~~ } </dt>
    <dd>配列***に配列xxxの要素が含まれている場合</dd>
    <dd>上記満たさない場合、配列@@@に配列xxxの要素が含まれている場合・・・</dd>
</dl>

## 繰り返し文(for文)
<dl>
    <dt>forEach (0..<5) { i in ~~~~~ }</dt>
    <dd>5回~~~~~を繰り返す。</dd>
    <dt>※SwiftUIでfor inは使用できないらしい・・・</dt>
    <dt>forEach (***, id: \.self) { *** in ~~~~~ }</dt>
    <dd>配列***の要素数だけ繰り返す。</dd>
    <dt>※配列***がIdentifiableプロトコルに準拠していない場合に使用する。(id: \.self)</dt>
</dl>

## 関数
<dl>
    <dt>func ***(xxx: String) -> Color { ~~~~~ }</dt>
    <dd>関数名：***</dd>
    <dd>仮引数名：xxx (上記例の場合、String型)</dd>
    <dd>上記例の場合、@@@型(返却値の型)で値を返却する。</dd>
</dl>

## 構造体
<dl>
    <dt>struct ContentView: View { ~~~~~ }</dt>
    <dd>メイン処理</dd>
    <dt>struct ***: View { ~~~~~ }</dt>
    <dd>メイン処理の構造体から分けて処理を記述できる。</dd>
</dl>

## 画像表示
<dl>
    <dt>Image(" ~~~~~~ ")</dt>
    <dd>画像を表示する。</dd>
    <dd>~~~~~~は画像名を入れる。</dd>
    <dd>画像名：~~~~~~.png</dd>
    <dd>※事前にXcodeの『Library』から画像を登録しておく。</dd>
</dl>

## リスト表示
<dl>
    <dt>list{ ~~~~~~ }</dt>
    <dd>リストで表示する。</dd>
    <dt>NavigationViwe {</dt>
    <dt>　list { </dt>
    <dt>　　****** </dt>
    <dt>　} </dt>
    <dt>　.navigationTitle("~~~~~~") </dt>
    <dt>}</dt>
    <dd>リストのタイトル『~~~~~~』を表示する。</dd>
</dl>

## その他
<dl>
    <dt>result = number.truncatingRemainder(dividingBy: 1)</dt>
    <dd>小数点以下を抜き出す</dd>
    <dt>if number.truncatingRemainder(dividingBy: 1).isLess(than: .ulpOfOne) { ~~~ } else { ~~~ }</dt>
    <dd>小数点以下が0の場合</dd>

</dl>

## コメントアウト
C言語と同じく以下の通り。
<dl>
    <dt>/* ~~~~~~~~~~~ */</dt>
    <dt>// ~~~~~~~~~~~</dt>
</dl>

<!-- 
## その他文法
<dl>
    <dt></dt>
</dl>
-->

# 2.Xcodeについて
本章では、Xcodeの操作方法・ショートカットキーについてまとめる。

## 操作方法

<dl>
    <dt>使用画像の登録</dt>
    <dd>『Assets.xcassets』を選択する。</dd>
    <dd>使用画像をドラッグ&ドロップする。</dd>
</dl>

## ショートカットキー
<dl>
    <dt>Control + i</dt>
    <dd>一括インデント</dd>
    <dd>(インデント揃えたい範囲を選択後、上記ショートカットキーを押す。)</dd>
    <dt>Command + Control + e</dt>
    <dd>ソースコード内の語句を検索する。</dd>
</dl>


<!-- # 3.ソースコード
```
// テンプレート



```
-->

## 更新履歴
<dl>
    2022/12/30
</dl>