Я довольно новичок в стремительном сообществе, поэтому я прошу прощения, если это не сложно.
У меня есть следующая проблема: у меня есть приложение, которое выдает следующее предупреждение, так как я перешел на TabView Layout:
"[TableView] Только одно предупреждение: UITableView было приказано расположить видимые ячейки и другое содержимое, не находясь в иерархии представлений (представление таблицы или одно из ее суперпредставлений не было добавлено в окно). Это может привести к ошибкам, заставляя представления внутри табличного представления загружаться и выполнять компоновку без точной информации (например, границ табличного представления, сбора признаков, полей макета, вставок безопасной области и т. д. c), а также может привести к ненужным Снижение производительности из-за дополнительных проходов макета. Установите символическую c точку останова на UITableViewAlertForLayoutOutsideViewHierarchy
, чтобы перехватить это в отладчике и посмотреть, что вызвало это, чтобы вы могли вообще избежать этого действия, если это возможно, или отложить его до представления таблицы. был добавлен в окно. Table view: <_TtC7SwiftUIP33_BFB370BA5F1BADDC9D83021565761A4925UpdateCoalescingTableView: 0x7fcc03055600; baseClass = UITableView; frame = (0 0; 414 852); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600002e25500>; layer = <CALayer: 0x60000200bf20>; contentOffset: {0, 0}; contentSize: {414, 0}; adjustedContentInset: {0, 0, 83, 0}; dataSource: (null)>
"
Я успешно воссоздал Проблема с простой структурой (см. ниже). Я был бы очень рад любым предложениям, что здесь происходит:
1) Модель
class PersonList {
var personList: [Person]
init() {
personList = [Person]()
personList.append(Person(surName: "Jane", name: "Smith"))
personList.append(Person(surName: "John", name: "Smith"))
}
}
class Person: Identifiable {
let id = UUID()
var surName: String
var name: String
init(surName: String, name: String) {
self.surName = surName
self.name = name
}
}
2) Просмотр одной вкладки
struct TestView: View {
let personList: [Person]
var body: some View {
List (personList) { person in
Text("Hallo \(person.name)")
}
}
}
3) Просмотр содержимого, включающий две вкладки (будет более сложным в реальном приложении)
struct ContentView: View {
var personList = PersonList()
var body: some View {
TabView {
Text("Test")
.tabItem {
Text("Tab 1")
}
TestView(personList: personList.personList)
.tabItem {
Text("Tab 2")
}
}
}
}
Проблема возникает, как только вы нажимаете на вкладку 2 и затем go обратно на вкладку 1.
Большое спасибо заранее и наилучшими пожеланиями,
Джулиан