SwiftではTextEditorの縦サイズが端末毎に変わってしまう

Shitf-UI にてライセンス許諾文を、TextEditor に表示した際の覚え書きです。Xcode 14.1 です。

TextEditor は、オートサイズが無いようです。フォントサイズを指定して、ライセンス許諾文が収まるようTextEditor 横縦サイズを指定しておきました。理論上どの端末でも同じになるハズですが、端末によって、ライセンス許諾文が途中で切れてしまいます。 これは iOSシュミレータと実機での間でも発生します。付随条件としては、TextEditor だけはスクロールできないので ScrollView をかませました。この時の端末は iPad 6th です。

@State private var licenseText : String = "Error"
 :
中略
 :
var body: some View {
 :
中略
 :
    ScollView( [.vertical], showsIndicators:true) {
	     TextEditor(text: $licenseText/* $必須 */ )
	     .frame(	width: myWidth * 0.9, height:8000)
	     .disabled(true)	// 入力禁止有効 
    }
    .border(Color.black, width: 1)
 :
中略
 :
}
.onAppear {
   :
  ライセンス文読込み
   :
	licenseText = tmptxt.string
   :
 後略

おそらく端末毎に dpi が異なるためだとおもうのですが、dpiを取得して演算するまで凝りたくありません。表示領域が多い分には実害はないので、弊方では height値 を一番高性能そうなiPad Pro 12inch の iOSシュミレータで合わせこんでおきました。

    ScollView( [.vertical], showsIndicators:true) {
	     TextEditor(text: $licenseText/* $必須 */ )
	     .frame(	width: myWidth * 0.9, height:9000)
	     .disabled(true)	// 入力禁止有効 
    }

8000 -> 9000 にUPで収まったということはザックリ1割のマージンを持たせておいた方が無難という感じでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です