相关疑难解决方法(0)

在 iOS 15 上,UIHostingController 向其托管 SwiftUI 视图 (_UIHostingView) 添加了一些奇怪的额外填充

更新:2022-09-26

\n

此问题已在 iOS 16 上修复。尽管即使使用 iOS 16 SDK 编译项目,该问题在 iOS 15 上仍然存在。

\n

原问题:

\n

在 iOS 15 上,正在UIHostingController向其托管 SwiftUI 视图添加一些奇怪的额外填充 ( _UIHostingView)。

\n

请参见下面的屏幕截图(蓝色=额外空间,红色=实际视图\xe2\x80\x99s):

\n

在此输入图像描述

\n

有谁知道为什么会发生这种情况?

\n

我已经报告了这个错误,Apple 人员:FB9641883

\n

PD:我有一个工作项目重现了我附加到反馈助手问题的问题。如果有人想要的话我也可以上传。

\n

swiftui uihostingcontroller ios15

19
推荐指数
1
解决办法
6662
查看次数

SwiftUI 视图的快照被部分截断

我尝试UIImage使用 HWS 中的代码从 SwiftUI 视图创建快照:如何将 SwiftUI 视图转换为图像

我得到以下结果,这显然是不正确的,因为图像被截断了。

结果

代码:

struct ContentView: View {
    @State private var savedImage: UIImage?

    var textView: some View {
        Text("Hello, SwiftUI")
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .clipShape(Capsule())
    }

    var body: some View {
        ZStack {
            VStack(spacing: 100) {
                textView

                Button("Save to image") {
                    savedImage = textView.snapshot()
                }
            }

            if let savedImage = savedImage {
                Image(uiImage: savedImage)
                    .border(Color.red)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
extension View {
    func snapshot() -> UIImage {
        let controller = UIHostingController(rootView: self) …
Run Code Online (Sandbox Code Playgroud)

uiimage ios swift swiftui ios15

8
推荐指数
2
解决办法
4366
查看次数

标签 统计

ios15 ×2

swiftui ×2

ios ×1

swift ×1

uihostingcontroller ×1

uiimage ×1