Как анимировать это в SwiftUI?IOS

Программируем под IOS
Ответить
Гость
 Как анимировать это в SwiftUI?

Сообщение Гость »

Я новичок в разработке для iOS и работаю над проектом с использованием SwiftUI. У меня есть лист, на котором я могу купить или продать некоторые акции. При успешной транзакции я должен показать зеленый экран с сообщением об успехе. Проблема в том, что моя реализация просто внезапно показывает зеленый экран, а не анимируется или исчезает. Вот что я имею в виду:
Так ведет себя мое приложение, и именно так я хочу, чтобы оно вело себя.< /p>
Вот код листа:

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

//
//  TradingSheetView.swift
//  Stock Search
//
//  Created by Kishan  on 4/29/24.
//

import SwiftUI
import SimpleToast

struct TradingSheetView: View {

@EnvironmentObject var root: ToastViewModel
@StateObject var viewModel = TradingSheetViewModel()

@Binding var isTrading: Bool
@Binding var company: Company?
@Binding var portfolio: Portfolio?
@Binding var wallet: Wallet?

private var tradingQuantity: Int {
let tradingQuantityInt = Int(viewModel.tradingQuantity)
//      if tradingQuantityInt == nil {
//          root.showToast(saying: "Please enter a valid amount")
//      }
return tradingQuantityInt ?? 0
}

private var tradingAmount: Double {
return (viewModel.quote?.c ?? 0) * Double(tradingQuantity)
}

var body: some View {
ZStack {
VStack {
HStack {
Spacer()
Button {
isTrading.toggle()
} label: {
Image(systemName: "xmark")
.foregroundStyle(Color(.label))
}
}

Text("Trade \(company?.name ?? "") shares")
.bold()

Spacer()

HStack {
TextField("0",
text: $viewModel.tradingQuantity)
.font(.system(size: 100, weight: .light))
.keyboardType(.numberPad)

Text(tradingQuantity > 1 ? "Shares" : "Share")
.font(.largeTitle)
.offset(y: 20)
}

HStack {
Spacer()

Text("x $\((viewModel.quote?.c ?? 0).getTwoPointsString())/share = $\(tradingAmount.getTwoPointsString())")
}

Spacer()

Text("$\((wallet?.amount ?? 0).getTwoPointsString()) available to buy \(company?.ticker ?? "")")
.font(.caption)
.foregroundStyle(.secondary)
.padding()

HStack(spacing: 20) {
Button {
Task {
if tradingAmount > (wallet?.amount ?? 0) {
root.showToast(saying: "Not enough money to buy")
return
}
if tradingQuantity   (portfolio?.quantity ?? 0) {
root.showToast(saying: "Not enough shares to sell")
return
}
if tradingQuantity 

Подробнее здесь: [url]https://stackoverflow.com/questions/78406494/how-to-animate-this-in-swiftui[/url]
Ответить

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

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

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

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

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