iOS

SwiftUIに配置したUIViewが真ん中に表示できない問題の対処法

SwiftUIにUIViewを配置して、次の様なコードで水平方向にセンタリングをしてみると…

HStack {
 Spacer()
 MyUIView()           
 Spacer()
}

 

Spacerが効かず、左寄りになってしまいます。
(付箋がMyUIViewです)

なぜなのか…、MyUIViewの背景色を赤にしてみると判明!
UIView自体のサイズは無視されてしまうようです。

そこで、明示的にUIViewのサイズを指定すると、想定通りの配置になります。

HStack {
 Spacer()
 MyUIView()
  .frame(width: 240, height: 150) //サイズを指定
 Spacer()
}