LoginSignup
0
1

More than 3 years have passed since last update.

SwiftでのGeometry Proxyを使う方法

Posted at

SwiftでのGeometry Proxyを使う方法(Xcode11.4.1)

初めての投稿です。
現在、Swift UIでアプリケーションからAirDropで共有をするためのActivity Viewを制作しています。
その中で、子Viewを親Viewへ引き渡すためのGeometry Proxyを記述しているのですが、
以下のコードだと、シミュレータ・実機(iOSバージョン13.4.1)で実行できても、次に示す行でThread 1: signal SIGABRTエラーが出てしまいます。

// 以下ソース
struct RectangleGetter: View {
@Binding var rect: CGRect

var body: some View {
    GeometryReader { geometry in
        self.createView(proxy: geometry)
    }
}

func createView(proxy: GeometryProxy) -> some View {
    DispatchQueue.main.async {
        self.rect = proxy.frame(in: .global)  // この行でThread 1: signal SIGABRTエラー
    }
    return Rectangle().fill(Color.clear)
}

}
// ソースここまで

ちなみに、Xcode11.3.1, iOS13.3.1までは普通に実機でも実行できていました。
その後、コードを変更したことはありません。

この間にコードの記述方法が変わったのでしょうか?
それともiOS側のバグか何かでしょうか?

ご教授ください。よろしくお願いいたします。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1