【SwiftUI】初心者向け!文字の色・太さ・フォントを変えるには

この記事の概要

SwiftUIでラベルの文字(Text)の種類・色・太さを変更する方法を、この記事にまとめました。

目次

  • この記事の概要
  • 目次
  • SwiftUIって?
  • プロジェクトをビルドする
  • 文字の内容を変える
  • 文字の種類を変える
  • 文字の色を変える
  • 文字の太さを変える
  • まとめ
  • 参考文献

Swift UIって?

米Appleは6月3日(日本時間6月4日未明)にカリフォルニア州サンノゼで開催したイベント「WWDC19」にて、Swift言語を用いて効率的にユーザーインターフェイスを定義できるUIフレームワーク「Swift UI」を発表しました。
引用:https://www.publickey1.jp/blog/19/appleswift_uiuiwwdc19.html

SwiftUIを従来のSwiftと比較して、やはり着目すべきなのは「ライブプレビュー機能」の実装でしょうか。従来のSwiftと比べて、ビルド時間が大幅に少なくなると思います!

プロジェクトをビルドする

Swiftの上部メニューバーの[Project]>[New Project]より、[Single View App]を選択します。
※今回は分かりやすさ重視で、この[Single View App]を選択していますが、ここで選択するものは基本的に、自分のニーズに合致するアプリを選択するようにしましょう。

[図1-1] Single View Appを選択する 



その後、[Product Name]に任意のプロジェクト名を入力します。
※ここでの[Product Name]は、好きな名前にして構いません。ただし、英数字のみを使い、ひらがな・カタカナ・漢字・記号などを使うのは避けましょう。

名前をつけ終わったら、[User Interface]内にあるドロップダウンリストをクリックし、[ Swift UI ]を選択します。

[図1-2] プロジェクト名とSwift UI を指定してビルド

すると、こんな画面が立ち上がったと思います。
[図1-3] プロジェクト起動画面

文字の内容を変える

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello, World!!")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

最初のコードはこんな感じだと思います。

一番最初のグレーの「//」で囲まれた部分(※これをコメントアウト、と言います)は不要なので削除しちゃいましょう。
続いて、5行目に着目。

  Text("Hello, World!!")

このTextというところに着目します。Swift UIでは、「"  " (ダブルクォーテーション)」で囲まれた部分を、文字列として認識します。試しに、Hello, World!!を別の文字列に変えてみましょう。

Text("ハイキュー!!")

すると、右側のiphoneのライブプレビュー画面が、変わったのが分かりますでしょうか。
[図2] Textの文字列を変える
ナンバリング版SwiftだとUILabelで定義していたものが、今回からはTextに置き換わるみたいです。

文字の種類を変える


Textの文字の種類を変えるには、.fontプロパティを使用します。

最初のコードに戻ります。
import SwiftUI

struct ContentViewView {
    var bodysome View {
        Text("Hello, World!!")
    }
}

struct ContentView_PreviewsPreviewProvider {
    static var previewssome View {
        ContentView()
    }
}

Textの下に .font(.title)を入れてみましょう。
struct ContentViewView {
    var bodysome View {
        Text("Hello, World!!")
    }
}


struct ContentView: View {
    var body: some View {
        Text("ハイキュー!!")
            .font(.title)
    }
}

そうすれば、ライブプレビューの文字が若干大きくなると思いますので、そうなれば成功です。

文字の色を変える
Textの文字の色を変えるには、.foregroundColorプロパティを使用します。

今回はピンク色にしてあげたいので、.foregroundColor()プロパティの中にColor.pinkと入れてあげます。
struct ContentViewView {
    var bodysome View {
        Text("Hello, World!!")
        .foregroundColor(Color.pink)
    }
}


こちらも、ライブプレビューで文字の色がピンク色になると思います。色が変わりましたでしょうか?

文字のフォントを変える

文字のフォントを変更するためには、.fontweight()プロパティを使用します。.fontweight()プロパティの中に(.heavy)を使用することで、今回は太字になったと思います。
struct ContentView: View {
    var body: some View {
        Text("ハイキュー!!")
            .fontWeight(.heavy)
        
    }
}

ライブプレビュー画面で確認が取れましたか?

ちなみに、プロパティは以下のように併用することもできます。
[図3]Textにプロパティを併用する

これで今回の記事は終わりです!お疲れ様でした。

まとめ

ちなみに、文字の種類・太さ・色を変えるために今回はコードを書きましたが、別にわざわざコードを書かなくても、サイドバーにあるこのドロップダウンリストからなら簡単に変更できますよ!

[図4]ドロップダウンリストからプロパティを入れる

ナンバリング版Swiftより、ラベルの書式設定が直感的かつ簡単にできるところがありがたいな、と思いました。コードも簡潔で読みやすいので、冗長にならなくていいですね。ナンバリング版Swiftだと、ラベルに名前を定義してあげて、サイクルの中でプロパティを設定してあげなくちゃいけなかったので、どうしてもコードが長くなってしまいますが、SwiftUIならそんな心配はいらなさそう!


参考文献

・Swift UI Tutorials Creating And Combining Views- Apple
・Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19

コメント

このブログの人気の投稿

【Unity】シーンギズモがデフォルトで表示されない時

【Swift4】argument passed to call that takes no arguments の解決策

【Swift4】iOSシミュレータでカメラとフォトライブラリが起動しない?試してみてわかったこと