この記事を読むにあたって注意事項
-
SwiftUIを初めて2週間程の初心者がおみくじを作ったものです、
-
この記事を読んでほしい人はSwiftUIを初めて見たい人、初めてまだ日が浅い人などが読んでほしい記事となります
目標
- 大吉,吉,中吉,末吉,小吉,凶,大凶をランダムに画面に表示させる。
- 表示する文字よってさらにそれぞれのコメントを表示させる。
完成したもの
コード
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での制作でお見苦しいところもありましたがこんな記事でも参考になるところがあったら光栄です。