PreviewResizable

一个视图修饰符,允许在 SwiftUI 预览中自定义调整大小和大小调试。 方便快速检查视图如何适应不同尺寸。

动机

仅仅为了检查视图在不同尺寸下的表现而切换目标设备有时会很慢。 Xcode 缺少一个功能,即允许在自由调整大小的窗口中(即使在单独的窗口中也会很棒)运行预览,而不是始终使用基于所选设备的固定尺寸。 例如,在物理 iPad 上,我们可以使用 Split View 或 Slide Over 将应用程序放置在不同尺寸中,但这在 SwiftUI 预览中是不可能的。 这只是 PreviewResizable 修饰符可以派上用场的一个例子。

工作原理

该修饰符将内容视图包装到一个容器视图中,该容器视图可以在运行实时预览时调整大小。

PreviewResizable_canvas

用法

只需将 previewResizable() 修饰符添加到您的视图即可。

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .previewResizable()
    }
}

安装

  1. 从“文件”菜单中,选择“Add Packages...”(添加包...)。
  2. 输入包存储库 URL: https://github.com/yannxou/PreviewResizable
  3. 确认版本并让 Xcode 解析包

提示

为了避免在每个需要使用 .previewResizable() 扩展的 SwiftUI 视图中都必须 import PreviewResizable,我们可以使用 @_exported 关键字在我们的模块中全局导入它。 此外,我们可以通过将调用包装在 #if 块中来防止它在发布版本中导入。

#if DEBUG
@_exported import PreviewResizable
#endif

对于 PreviewResizable 修饰符的临时使用(我们可以添加扩展来进行一些手动检查,但之后将其删除),这不是问题。 但是,如果我们想要提交包含修饰符调用的预览代码,则 PreviewProvider 实现也必须包装在类似的 #if 块中,以防止在构建发布版本时发生错误。

许可

该库以 MIT 许可证发布。 有关详细信息,请参见 LICENSE