我有一个选项ViewController,用户可以在其中更改密码和pickerView。每当他按下保存按钮时,计时器启动并且用户通过segue被引导到主屏幕。我希望能够在用户按下此保存按钮时将pickerView变灰一段时间(在选项ViewController上)(它等于基于时间的限制)。 我现在的问题是,无论何时用户按下按钮并被定向到主屏幕,选项ViewController上的pickerview.alpha(我设置为灰色效果)都不会改变/当用户返回时,更改不可见在这段时间内。此外,当时间段到期时,pickerview.alpha不会更改选项ViewController屏幕。
所以为了遵循我的描述,这里是我的代码到目前为止:
import UIKit
class OptionsViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate
@IBOutlet var PickerView: UIPickerView!
var seconds = 20
var timer = Timer()
var isTimerRunning = false
@IBAction func Save_Touched(_ sender: Any) {
if isTimerRunning == false {
runTimer()
}
self.performSegue(withIdentifier: "fromOptionstoMainSegue", sender: self)
}
func runTimer() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(OptionsViewController.updateTimer), userInfo: nil, repeats: true)
self.PickerView.alpha = 0.5
isTimerRunning = true
}
func updateTimer() {
if seconds < 1 {
timer.invalidate()
self.PickerView.alpha = 1.0
} else {
seconds -= 1
print(seconds)
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.PickerView.dataSource = self
self.PickerView.delegate = self
print(isTimerRunning)
}
}
为了实现它,我尝试了无穷无尽的选择,但却无法实现。 因此,我真的很期待任何答复或帮助!
亲切的问候
答案 0 :(得分:0)
您可以轻松禁用pickerView。要么完全隐藏它:
PickerView.isHidden = true
然后取消隐藏它,或者只是简单地禁用它:
PickerView.isUserInteractionEnabled = false
并在保存完成后再次启用它。没有必要使pickerView变灰。
编辑:
您的代码设置选择器视图的alpha值没有任何问题。确保您的插座链接到故事板中的选择器视图。