Настройка прокрутки Swift UI IOS 15

#swift #swiftui #scrollview #ios15 #swiftui-foreach

Вопрос:

Не знаю, как вы, ребята, но когда я открыл свой проект сегодня (впервые с тех пор, как Swift перешел на iOS 15 по умолчанию), мой пользовательский интерфейс выглядел совершенно по-другому. Самое главное, что ранее соседние представления внутри каждого теперь имеют некоторое отступление между ними.

Как мы можем это устранить? Я включил несколько примеров кода, но я надеюсь, что мы сможем найти решение, которое можно обобщить. Фактическая проблема в моем пользовательском интерфейсе имеет слишком много движущихся частей, чтобы включать их сюда.

 struct IntItem: Identifiable {
    let num: Int
    let id = UUID()
  
}


struct ItemView: View {
    var item: IntItem
    
    var body: some View {
        Text(String(item.num))
            .padding(10)
            .border(Color.black)
          
    }
}

struct ContentView: View {
    let array: [IntItem]
    
    var body: some View {
        ScrollView {
            ScrollViewReader { thing in
                ForEach(array) { item in
                    ItemView(item: item)
                }
            }
        }
    }
}


let content = ContentView(array: [IntItem(num: 0), IntItem(num: 1), IntItem(num: 2), IntItem(num: 3)])
 

Комментарии:

1. в ItemView вы могли бы попробовать .padding(.horizontal, 10)

2. Разве это не было бы вертикальным? И я бы предпочел, чтобы границы соприкасались без дополнительной прокладки изнутри по эстетическим соображениям.

3. другими словами, вы еще не пробовали этого.

4. ?? Я попробовал, и это ничего не изменило

5. протестировано на реальных устройствах, macos 12.бета-версия, xcode 13.бета-версия(не выпущена), предназначена для ios 15 и macCatalyst 12. Какую систему вы используете и на что ориентируетесь?

Ответ №1:

Хорошо, вот что сработало-использование вертикального заполнения отрицательного числа (в моем случае 4) на каждом отдельном представлении. Я все еще хотел бы получить разъяснения о том, почему это изменилось с iOS 15.

Комментарии:

1. Меня интересует ваше решение, не могли бы вы отредактировать свой вопрос с помощью кода, который вы использовали, чтобы «заставить его работать».

2. как я и думал