LoginSignup
174
34

More than 1 year has passed since last update.

クレヨンしんちゃん

Last updated at Posted at 2022-02-15

頻繁に書くのでメモがてら記事にします。

キャンバスサイズの設定

最近クレヨンしんちゃんを見ていないので念の為4:3にしましょう、自信があれば16:9でも良いと思います。

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

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
+            .previewLayout(PreviewLayout.fixed(width: 400, height: 300))
    }
}

CleanShot 2022-02-16 at 01.36.19@2x.png

色の定義

let topColor = Color(red: 0.94, green: 0.51, blue: 0.64)
let bottomColor = Color(red: 0.95, green: 0.95, blue: 0.50)

これらの色をLinearGradientで描画します。

struct ContentView: View {
    let topColor = Color(red: 0.94, green: 0.51, blue: 0.64)
    let bottomColor = Color(red: 0.95, green: 0.95, blue: 0.50)

    var body: some View {
        LinearGradient(
            colors: [topColor, bottomColor],
            startPoint: .top,
            endPoint: .bottom
        )
    }
}

CleanShot 2022-02-16 at 01.39.37@2x.png

やりたいことが分かってきたでしょうか

タイトルの設定

タイトルを追加します。

VStack(alignment: .leading) {
    Text("開発途中で")
    Text("だいたいプレビュー使わなくなるゾ")
        .offset(x: 20)
}
.font(.title3.bold())
.foregroundColor(titleColor)

重要なのは以下の部分です。

Text("だいたいプレビュー使わなくなるゾ")
    .offset(x: 20)

offset(x:)を使うことで2行目を少しズラしています。

CleanShot 2022-02-16 at 02.19.20@2x.png

ルビをふる

子供の番組なので、ルビを振ります。
本当はkCTRubyAnnotationAttributeNameを使うのですが、うまくいかないのでVStackで無理やり乗せます

            VStack(alignment: .leading) {
+                VStack(alignment: .leading) {
+                    Text("かいはつとちゅう").font(.caption2)
+                    Text("開発途中で")
+                }
                Text("だいたいプレビュー使わなくなるゾ")
                    .offset(x: 20)
            }
            .font(.title3.bold())
            .foregroundColor(titleColor)

CleanShot 2022-02-16 at 02.18.51@2x.png

重ねる

ZStackを使って文字を重ねます

struct ContentView: View {
    let topColor = Color(red: 0.94, green: 0.51, blue: 0.64)
    let bottomColor = Color(red: 0.95, green: 0.95, blue: 0.50)
    let titleColor = Color(red: 0.38, green: 0.01, blue: 0.37)

    var body: some View {
        ZStack {
            LinearGradient(
                colors: [topColor, bottomColor],
                startPoint: .top,
                endPoint: .bottom
            )

            VStack(alignment: .leading) {
                VStack(alignment: .leading) {
                    Text("かいはつとちゅう").font(.caption2)
                    Text("開発途中で")
                }
                Text("だいたいプレビュー使わなくなるゾ")
                    .offset(x: 20)
            }
            .font(.title3.bold())
            .foregroundColor(titleColor)
        }
    }
}

CleanShot 2022-02-16 at 02.08.01@2x.png

これでSwiftUIでクレヨンしんちゃんのタイトルコールを作ることが出来ました。

いかがでしたか?

174
34
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
174
34