Анимировать высоту контента при изменении листа Swiftui Centent программноIOS

Программируем под IOS
Ответить
Anonymous
 Анимировать высоту контента при изменении листа Swiftui Centent программно

Сообщение Anonymous »

Я сталкиваюсь с следующей проблемой: < /p>
Когда отображается лист с несколькими задержаниями: < /p>

[*] Изменение размера Лист из индикатора перетаскивания изменит отображаемую высоту представления соответственно и постепенно
[*] Изменение размера листа путем изменения затрата программно изменит отображаемое представление на окончательную высоту мгновенно
< /ul>
Как я могу получить прогрессивное изменение размера представления, представленного при изменении программного изменения? < /p>
struct TestView: View {
@State var selectedDetent: PresentationDetent = .medium
@State var detents: Set = [.large, .medium]
@State var height: CGFloat = 0

var body: some View {
VStack {}
.sheet(isPresented: .constant(true)) {
Button {
selectedDetent = selectedDetent == .large ? .medium : .large
} label: {
Text("\(Int(height))")
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
.padding()
.buttonStyle(.borderedProminent)
.modifier(GetHeightModifier(height: $height))
.presentationDetents(detents, selection: $selectedDetent)
.interactiveDismissDisabled()
}
}
}

struct GetHeightModifier: ViewModifier {
@Binding var height: CGFloat

func body(content: Content) -> some View {
content.background(
GeometryReader { geo -> Color in
DispatchQueue.main.async {
height = geo.size.height
}
return Color.clear
}
)
}
}
< /code>



Перетаскивание листа < /th>
изменение программного изменяемого затрат < /th>
< /tr>
< /thead>

< tr>

< img alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/wxjusstw.gif"/>




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

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

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

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

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

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