SwiftUI 预览布局:适合的尺寸不起作用

Swi*_*Max 17 xcode swiftui swiftui-previews

我希望我的预览只显示视图的大小,而不显示整个 iPhone。我已经用这段代码尝试过了:

struct TimerCardView: View {
   
    
    var body: some View {
        Text("Hello, World!")
            .padding()
            .background(.gray)
    }
}


struct TimerCardView_Previews: PreviewProvider {
    static var previews: some View {
        TimerCardView()
            .previewLayout(.sizeThatFits)
    }
}
Run Code Online (Sandbox Code Playgroud)

但什么也没发生。我究竟做错了什么?我很感激帮助

Sco*_*man 54

在 Xcode 14+ 中,预览画布的默认模式是实时模式,正如您\xe2\x80\x99 所见,该模式将预览放置到设备屏幕上下文中。

\n

手动调整预览布局需要 \xe2\x80\x9cselectable\xe2\x80\x9d 模式,这在以前版本的 Xcode 中是默认的。您可以使用工具栏画布底部的调色板在模式之间切换。例如:

\n

显示预览模式之间差异的 GIF

\n


Luc*_*rea 25

Xcode 15 你可以做到。

#Preview(traits: .sizeThatFitsLayout) {
    ContentView()
}
Run Code Online (Sandbox Code Playgroud)

  • 除此之外,我认为您还必须按“可选择”模式,就像我们在 @ScottM 答案中看到的那样。主总是拯救! (3认同)