SwiftUI .refreshable приводит к смещению целей нажатия кнопок в ScrollViewIOS

Программируем под IOS
Ответить
Anonymous
 SwiftUI .refreshable приводит к смещению целей нажатия кнопок в ScrollView

Сообщение Anonymous »

У меня есть ScrollView с несколькими кнопками и модификатором .refreshable. Как только я тяну, чтобы обновить, и появляется индикатор обновления, цели касания больше не соответствуют видимым положениям кнопок. Например, нажатие кнопки A запускает действие кнопки B, как если бы область проверки нажатия не перемещалась вместе с содержимым.
Это происходит только тогда, когда отображается индикатор обновления. До дергания на обновление все правильно и после тоже. Протестировано на iOS 18 и 26 (Xcode 16.4, Xcode 26).
Вот минимальный воспроизводимый пример:
import SwiftUI

struct ContentView: View {
var body: some View {
ScrollView {
VStack {
Button("Button A") {
print("A")
}
.buttonStyle(.borderedProminent)

Button("Button B") {
print("B")
}
.buttonStyle(.borderedProminent)

Button("Button C") {
print("C")
}
.buttonStyle(.borderedProminent)

Button("Button D") {
print("D")
}
.buttonStyle(.borderedProminent)

Button("Button E") {
print("E")
}
.buttonStyle(.borderedProminent)
}
.frame(maxWidth: .infinity)
}
.refreshable {
Task {
try? await Task.sleep(for: .seconds(60))
}
}
}
}


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

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

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

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

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

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