GeometryReader无法生成正确的屏幕高度?

时间:2019-10-26 01:50:23

标签: watchkit swiftui

public var body: some View  
{  
  ZStack{  

     GeometryReader { geometry in  
          RoundedRectangle(cornerRadius: 25, style: .continuous)  
            .frame(width: geometry.size.width*1.00, height: geometry.size.height*1.00)  
            .zIndex(0)  
      }  
  }  
} 

我正在使用GeometryReader绘制一个圆角的矩形来填充整个手表屏幕,在38mm的手表模拟器上看起来不错,但是当我将手表尺寸增加到40、42、44mm时,我注意到高度并没有填满整个屏幕。我必须将倍数调整为例如1.1,以填满更多屏幕。

有人可以告诉我我是否正确使用了GeometryReader?

1 个答案:

答案 0 :(得分:0)

除非您真的需要几何读取器的全部功能来实际测量屏幕对象的大小,否则我认为您可以通过设置框架的maxWidth和{{1 }}到maxHeight,并忽略底部的安全区域。

.infinity

请注意,当您使用var body: some View { ZStack { RoundedRectangle(cornerRadius: 25, style: .continuous) .frame(maxWidth: .infinity, maxHeight: .infinity) .edgesIgnoringSafeArea(.bottom) } } 时,项目的顺序将确定屏幕上的顺序。堆栈中的第一个项目将在底部,然后每个项目将在顶部分层。