Swiftui 圆圈未居中-应为其他内容

Swiftui 圆圈未居中-应为其他内容,swiftui,Swiftui,我有这个密码。圆没有居中。我假设是因为边缘识别…是的,如果我把它注释掉,它是居中的。但是如果我注释掉“scaledToFill”,它也会居中,尽管边缘识别在…这是一个bug还是我误解了什么?我在iPhoneX预览版上测试过 struct ContentView: View { var body: some View { Circle() .scaledToFill() .edgesIgnoringSa

我有这个密码。圆没有居中。我假设是因为边缘识别…是的,如果我把它注释掉,它是居中的。但是如果我注释掉“scaledToFill”,它也会居中,尽管边缘识别在…这是一个bug还是我误解了什么?我在iPhoneX预览版上测试过

struct ContentView: View {
    var body: some View {
            Circle()
                .scaledToFill()
                .edgesIgnoringSafeArea(.all)
    }
}

简短的回答,是的,这是一个错误。正在计算圆的大小(包括安全区域),但正在计算圆的水平偏移以使其居中,假设圆的大小不包括安全区域。在iPhone11上,两个圆圈的左边缘约为-204像素,这使得较大的圆圈不居中。

简短回答,是的,这是一个bug。正在计算圆的大小(包括安全区域),但正在计算圆的水平偏移以使其居中,假设圆的大小不包括安全区域。在iPhone 11上,两个圆圈的左边缘约为-204像素,这使得较大的圆圈没有居中。

我尝试提出解决方案(有人可能会说这是解决办法-没关系),在某些情况下,这可能是可以接受的,因为两个圆圈都正确居中,因此值得发布:

注意:修改器的顺序很重要

1) 方法1

 Ellipse()
        .edgesIgnoringSafeArea(.all)
        .scaledToFill()

2) 方法2

Circle()
    .edgesIgnoringSafeArea(.all)
    .scaledToFill()

我试图提出解决方案(有人可能会说这是一种变通办法——没关系),在某些情况下,这可能是可以接受的,因为两者都以适当的方式为中心,因此值得发布:

注意:修改器的顺序很重要

1) 方法1

 Ellipse()
        .edgesIgnoringSafeArea(.all)
        .scaledToFill()

2) 方法2

Circle()
    .edgesIgnoringSafeArea(.all)
    .scaledToFill()