SWIFT UI 画像の表示
ゲーム作成に画像は欠かせない。
jpgやpngで画像データを用意して、FinderからXCODEのAssets.xcassetesにドラッグ、
そうするとイメージのリストにファイル名拡張子なしで登録されるので、この名前を
VIEW の Text("Hello") の代わりに Image("名前") で画像が表示される。
struct view5: View {
var body: some View {
Image("ten")
}
}
横に並べるならHStackを使って
struct view5: View {
var body: some View {
HStack {
Image("ten")
Image("ten")
}
}
}
画像のサイズ調整は、
Image("ten")
.resizable()
.frame(width: 100, height: 150)
とすれば、幅と高さを指定できる。
位置の調整は offset を使って
Image("ten")
.resizable()
.frame(width: 100, height: 150)
.offset(x: -50, y: 50)
このサイズやオフセットでしている値、変数にしても構わないけれど、Int や Double じゃだめで、CGFloat という型。
回転させる事もできる
.rotationEffect(Angle(degrees: 10))
やっかいなのは画像の切り替え。
2つの切り替えだけならifが使える。
var flg: Bool = False
if flg {
Image("ten")
}else{
Image("nine")
}
複数の切り替えだと、Imageの引数の文字列を変える。
@State var str: String = "ten"
Image(str)
表示あり、なしの切り替えは、if を使うのだけれど
if flg {
Image("ten")
}
だとflg==false で表示は消えるのだけれど、表示する画像がなくなるので、うまくやらないとレイアウトが崩れてしまう。
VStack{
if flg {
Image("ten")
}
}.frame(width: 100, height: 150)
みたいにしておくと、表示する画像がなくてもVStackがframeのサイズを確保してくれる。
ここは実際に確認しないと、エラーになるかもしれない。