1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Swift初心者がおみくじを作る

Posted at

この記事を読むにあたって注意事項

  • SwiftUIを初めて2週間程の初心者がおみくじを作ったものです、

  • この記事を読んでほしい人はSwiftUIを初めて見たい人、初めてまだ日が浅い人などが読んでほしい記事となります

目標

  • 大吉,吉,中吉,末吉,小吉,凶,大凶をランダムに画面に表示させる。
  • 表示する文字よってさらにそれぞれのコメントを表示させる。

完成したもの

キータ.gif

コード

import SwiftUI

struct ContentView: View {
    let omikuzi = ["大吉", "大吉", "吉", "吉", "吉", "中吉", "中吉", "中吉", "末吉", "末吉", "末吉", "小吉", "小吉", "小吉", "凶", "凶", "大凶"]
    @State var kuzi = ""
    
    var body: some View {
        
        VStack {
            Button("おみくじ") {
                kuzi = omikuzi.randomElement()!
            }
            .padding()
            .foregroundColor(.white)
            .background(
                Capsule()
                    .foregroundColor(.blue)
                    
            )
            Text(kuzi)
                .padding(.top)
                .font(.system(size: 50))
            
            if (kuzi=="大吉") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("おめでとう!!")
                    .font(.system(size: 25))
            }
            
            if (kuzi=="吉") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("普通が一番!")
                    .font(.system(size: 25))
            }
            
            if (kuzi=="中吉") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("次に期待!")
                    .font(.system(size: 25))
            }
            
            if (kuzi=="末吉") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("まだ大丈夫")
                    .font(.system(size: 25))
            }
            
            if (kuzi=="小吉") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("小さくても積もれば・・")
                    .font(.system(size: 25))
            }

            if (kuzi=="凶") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("いいことをすれば何とかなる!")
                    .font(.system(size: 25))
            }
            
            if (kuzi=="大凶") {
                Text("一言コメント")
                    .padding(.top,10)
                Text("逆に運がいい")
                    .font(.system(size: 25))
            }
        }
    }
}


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

重要なこと

この機能を作る時に重要な事はどうやってランダム性を作るのかが鍵だと思います。その重要なランダム性を作るのに最適なものがありそれがrandomElement()です。
これは名前の通り配列などのコレクションから要素をランダムに取り出すメソッドであり、
今回だと

 VStack {
            Button("おみくじ") {
                kuzi = omikuzi.randomElement()!
            }

ここにボタンが押されたときにランダムに取り出すようにかきました

感想

初めてのQiitaの書き込み&初めてのSwiftUIでの制作でお見苦しいところもありましたがこんな記事でも参考になるところがあったら光栄です。

1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?