SwiftUI, как дать Slider минимальное и максимальное значение и отобразить его значение в тексте? - PullRequest
1 голос
/ 25 июня 2019
import SwiftUI

struct ContentView : View {
    var body: some View {
        PasswordGeneratorSettings(settingsConfiguration: PasswordGeneratorSettings.Settings.init(passwordLength: 20))
    }
}


struct PasswordGeneratorSettings : View {
    @State var settingsConfiguration: Settings
    struct Settings {
        var passwordLength = UInt()
    }
    var body: some View {
        NavigationView {
            List {
                Slider(value: $settingsConfiguration.passwordLength) { pressed in
                    Text("Password Length: \(settingsConfiguration.passwordLength)")
                }
                }.navigationBarTitle(Text("Settings"))
        }
    }
}

Итак, я создаю генератор паролей и хочу начать с ползунка с минимальной длиной 1 и максимальной длиной 512 с меткой, отображающей его значение (в виде целого числа), но это всеМне просто нужно попробовать обновить ярлык слева от таблицы (List) с ползунком справа, но он даже не компилируется.

Слишком долго не читал: я пытаюсь:

  1. Узнайте, как установить минимальное и максимальное значение с помощью ползунка

  2. Иметь метку со значением ползунка (в виде целого числа)на левой стороне ячейки таблицы с ползунком на правой стороне.

И я хочу сделать все это без UIKit только SwiftUI (и Combine, если необходимо).

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Ваш код не компилируется, потому что вам нужно использовать double в параметре значения слайдера.Вы можете выполнить ваши требования, используя приведенный ниже код.Слайдер принимает три значения параметра, от и до.Проще говоря, from - это minValue, through - это maxValue, и в любой момент времени «value» будет возвращать текущее значение в ползунке.

struct PasswordGeneratorSettings : View {
    @State var settingsConfiguration: Settings
    struct Settings {
        var passwordLength: Double = 1.0
    }
    var body: some View {
        NavigationView {
            List {
                HStack {
                    Text("Password Length: \(Int(settingsConfiguration.passwordLength))")
                    Slider(value: $settingsConfiguration.passwordLength, from: 1, through: 512)
                }
                .padding()
            }.navigationBarTitle(Text("Settings"))
        }
    }
}
0 голосов
/ 25 июня 2019

Вот как вы используете ползунок:

import SwiftUI

struct ContentView : View {
    @State var length: Float = 20

    var body: some View {
        NavigationView {
            List {
                PasswordGeneratorSettings(length: $length)
            }.navigationBarTitle(Text("Settings"))
        }
    }
}


struct PasswordGeneratorSettings : View {
    @Binding var length: Float

    var body: some View {

        VStack(alignment: .leading) {
            Slider(value: $length, from: 1, through: 512, by: 1)

            Text("Password Length: \(Int(length))")

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...