Как проверить, виден ли элемент — SwiftUI ScrollViewIOS

Программируем под IOS
Ответить
Anonymous
 Как проверить, виден ли элемент — SwiftUI ScrollView

Сообщение Anonymous »

Попытка программно определить, когда элемент отображается на экране в ScrollView в SwiftUI. Я понимаю, что ScrollView отображается одновременно, а не по мере появления элементов (как в списке), но я ограничен использованием ScrollView, поскольку у меня есть действия .scrollTo.
Я также понимаю, что в UIKit с UIScrollView можно использовать CGRectIntersectsRect между рамкой элемента и рамкой ScrollView в UIScrollViewDelegate, но я бы предпочел найти решение в SwiftUI, если возможно.
Пример кода выглядит следующим образом:

Код: Выделить всё

ScrollView {
ScrollViewReader { action in
ZStack {
VStack {
ForEach(//array of chats) { chat in
//chat display bubble
.onAppear(perform: {chatsOnScreen.append(chat)})
}.onReceive(interactionHandler.$activeChat, perform: { _ in
//scroll to active chat
})
}
}
}
}
В идеале, когда пользователь прокручивает страницу, он проверяет, какие элементы находятся на экране, и масштабирует изображение так, чтобы оно соответствовало самому большому элементу на экране.

Подробнее здесь: https://stackoverflow.com/questions/661 ... scrollview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»