前提・実現したいこと
プログラミング,swift初心者です
SwiftでSliderの値をUserDefaultsを使って保存したいです.
具体的には,Sliderを動かす-連動してLabelの値が変化する-saveボタンを押すと,Sliderの値(位置?)が保存される----といったようなアプリです.
別のLabelを用意して,値をおいて保存することはできるのですが,Slider自体の値の保存(スライドさせてその位置?を保存といったように)はどのようにおこなえば良いのでしょうか?
独学で始めたものですから,周りに質問できる人がおらず,質問の程度が低く,意味など無茶苦茶な点が多くあると思いますが,どなたか教えていただけないでしょうか?
追記 皆様のおかげで解決しました!ありがとうございました!saveボタンなしでsliderとlabelが連動し自動的に保存されるコードができましたので一応下のほうに載せておきます.間違いなど改善点などあればご指摘お願いします.
発生している問題・エラーメッセージ
質問のコード↓ ### 該当のソースコード Swiftここに言語名を入力 import UIKit class ViewController: UIViewController { //label @IBOutlet weak var sliderLabel: UILabel! //sliderにLabelが連動 @IBAction func mySlider(_ sender: UISlider) { sliderLabel.text = String(sender.value) } //sliderのoutlet @IBOutlet weak var mySliderValue: UISlider! //ここからの手順がわからないです。 //saveボタンを押す **@IBAction func saveValue(_ sender: Any) { //ユーザーデフォルト参照 let defaults = UserDefaults.standard //sliderの値をキー"sliderValue"で保存 defaults.set(mySliderValue, forKey: "sliderValue") } func readValue(){ //ユーザーデフォルト参照 let defaults = UserDefaults.standard //ここをどうしたらいいかがわからない mySliderValue = defaults.float(forKey: "sliderValue") }** //ここまで override func viewDidLoad() { super.viewDidLoad() readValue() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } //ここから解決済のコード import UIKit class ViewController: UIViewController { //slider and label outlet connection @IBOutlet weak var mySlider: UISlider! @IBOutlet weak var sliderLabel: UILabel! //label follows slider @IBAction func mySliderMove(_ sender: Any) { //label follows slider sliderLabel.text = String( mySlider.value) //defaults let defaults = UserDefaults.standard defaults.set(mySlider.value, forKey: "sliderValue:") } //reading function func read(){ let defaults = UserDefaults.standard let value = defaults.float(forKey: "sliderValue:") sliderLabel.text = String(value) mySlider.value = value } override func viewDidLoad() { super.viewDidLoad() //function action read() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー