Ограничить рассчитанное значение до максимального значения - SwiftUI - PullRequest
0 голосов
/ 20 февраля 2020

Если значения вставляются в приложение, а не в «скажем, предпочитаем порядок», возникает большое значение, оно корректно, но выглядит не очень хорошо.

Например, если второе текстовое поле (userData.Rent) заполнено перед первым текстовым полем (userData.BPrice), значение для «return Brutto» составляет 24 тыс.% ...

Как может ли вычисленное значение быть ограниченным определенным значением, например, оно не может go превышать 20% или любое другое значение. Но ниже этого значения он движется свободно.

Следует более или менее остановиться, скажем, на 20%

// ContentView:

struct ContentView: View {
    @EnvironmentObject var userData: UserData

    var Brutto: Double{
        let price = Double(userData.BPrice) ?? 0
        let rent = Double(userData.Rent) ?? 0

        let Brutto = rent * 12 / price * 100

        return Brutto
    }

    var body: some View {
        VStack {            
            Text ("\(Brutto, specifier: "%.1f")")
        }
        VStack{
             TextField("BPrice", text: $userData.BPrice)
               .keyboardType(.decimalPad)
         }
         VStack{
              TextField("Rent", text: $userData.Rent)
               .keyboardType(.decimalPad)
          }
    }

// Файл пользовательских данных:

class UserData : ObservableObject {

  private static let userDefaultBPrice = "BPrice"
  private static let userDefaultRent = "Rent"


  @Published var BuyingPrice = UserDefaults.standard.string(forKey: UserData.userDefaultBPrice) ?? "" 
  {
    didSet {
      UserDefaults.standard.set(self.BPrice, forKey: UserData.userDefaultBPrice)
    }
  }

  @Published var Rent = UserDefaults.standard.string(forKey: UserData.userDefaultRent) ?? "" {
    didSet {
      UserDefaults.standard.set(self.Rent, forKey: UserData.userDefaultRent)
    }
  }
  private var canc: AnyCancellable!

}

Screenshot were the absurd high value is displayed

Спасибо

...