从 UIKit 调整 SwiftUI 组件

Posted

技术标签:

【中文标题】从 UIKit 调整 SwiftUI 组件【英文标题】:Adjust SwiftUI Component from UIKit 【发布时间】:2021-01-08 17:37:22 【问题描述】:

有时我需要调整 swiftUI 组件,所以我深入 UIKit 并调整我需要的内容,例如在下面的代码中我为特定视图调整表格视图外观,问题是对所有 SwiftUI 的影响查看有表视图,所以一切都变得一团糟,是否有某种方法可以针对特定视图调整 SwiftUI 组件,而不会影响其他视图中的相同组件。

    struct New_EditGroup: View 
            
        init() 
            let tableAppearance = UITableView.appearance()
            tableAppearance.contentInset = UIEdgeInsets(top: 16, left: 0, bottom: 0, right: 0)
            tableAppearance.sectionHeaderHeight = 1
            tableAppearance.sectionFooterHeight = 16
            
        
       
        var body: some View 
    // ...

【问题讨论】:

只需使用 Section 参考 - developer.apple.com/documentation/swiftui/section。不要尝试像UIKit 那样使用SwiftUI。最好在 SwiftUI 上观看 Apple 开发者视频,从头开始学习。不要从UIKitSwiftUI 进行逐行翻译,它们是完全不同的框架。 我是这样做的,但是在SwiftUI中有一些不允许做的调整,你需要使用UIKit来做。 也许你可以编辑你的存在以显示 SwiftUI 尝试的代码和图像你打算做什么 谢谢,但这不是我要找的。​​span> 查看间隔高度的更新答案 【参考方案1】:
struct ContentView: View 
    var body: some View 
        NavigationView 
            Form 
                Section(header: Spacer().frame(height: 16)) 
                    ForEach(1..<10)  element in
                        Text("Element \(element)")
                    
                
            
            .navigationBarTitle("Main Menu", displayMode: .inline)
        
    

【讨论】:

以上是关于从 UIKit 调整 SwiftUI 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift UIKit Map 组件中处理 SwiftUI 中的触摸手势?

有啥方法可以将视图从 swiftUI 更改为 UIKit?

将自定义 UIKit 事件从自定义 UIKit 控件公开到 SwiftUI

文本视图的 lineBreakMode 是不是有 SwiftUI 等效项?

通过 Swift 泛型初始化 SwiftUI 视图

如何从内部的 SwiftUI 视图返回到 UIKit?