在SwiftUI中,是否有类似于UIKit的替代方法来删除ReusableCell?

6rvt4ljy  于 5个月前  发布在  Swift
关注(0)|答案(2)|浏览(50)

我目前正在做一个SwiftUI项目,遇到了一个场景,我需要在UIKit中实现类似于deployeReusableCell方法的东西。在UIKit中,我通常会重用单元格来优化UICollectionView或UICollectionView中的内存使用。
在SwiftUI中是否有一个等效或替代的方法来以类似的方式重用视图或组件?我搜索了文档和论坛,但还没有找到一个明确的解决方案。
以下是我试图实现的简化版本:

// Example in UIKit
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCustomCell
// Do something with the cell...

// What would be the equivalent in SwiftUI?
// Is there a mechanism for reusing views efficiently?

字符串
任何指导或例子将不胜感激。提前感谢!

zed5wv10

zed5wv101#

SwiftUI的ListGrid中的任何相同类型的视图都会自动进行单元格删除,这分别相当于UIKit的UITableViewUICollectionView

List(arr,id:\.self) { row in
   DetailListCell(.....  <<< Will be dequeued

字符串

jk9hmnmh

jk9hmnmh2#

与SwiftUI等效的TableView是一个List。您还可以在List中使用ForEach来表示一种cell。只需将任何View放在ForEach内容块中,它就是一个“单元格”外观:

struct ContentView: View {
    var list = Array(0...100)

    var body: some View {
        NavigationStack {
            VStack {
                List {
                    ForEach(list, id: \.self) {
                        Text("\($0)")
                    }
                }
            }
            .navigationTitle("List here")
        }
    }
}

字符串


的数据

相关问题