92129


swift ui で

TextEditor(text: $text)  
.frame(width: .main.bounds.width * 0.8, height: 200)

とすると

Type 'CGFloat' has no member 'main'

というアラートが出ます。

その前にはUIScreenを置いていました。

UIKitを付けてもアラートが出ました。

.mainはサポートされていないのですか？


CC BY-SA 4.0
2022-11-10T07:27:53.540
92127
2022-11-10T08:40:39.797
39481
question
swift swiftui
swift ui アラート Type 'CGFloat' has no member 'main'


frame(width: ?)にはCGFloatが入るので、CGFloatのinit,
staticなどであれば`.`始まりでいけますが、今回の場合はCGFloatはmainを持っていないので、`.`始まりは不可能です。

[code]

    .frame(width: UIScreen.main.bounds.width * 0.8, height: 200)
    .frame(width: .zero)
    
[/code]

無理やりやることも可能ですが、意味がないです。

[code]

    struct ContentView: View {
      @State var text: String = "Hello"
      
      var body: some View {
        TextEditor(text: $text)
          .frame(width: .main.bounds.width * 0.8, height: 200)
      }
    }
    
    extension CGFloat {
      static let main: UIScreen = .main
    }
    
[/code]


CC BY-SA 4.0
2022-11-10T08:40:39.797
92129
2022-11-10T08:40:39.797
40856
92127
answer