Uipickerview在倒计时计时器之后不会在其他ViewController上更新



我有一个选项viewController,用户可以在其中更改密码和pickerview。每当他按下定时器的"保存"按钮时,用户通过SEGUE将用户定向到主屏幕。我希望在用户按下此保存按钮(等于基于时间的限制)后,我希望能够在一定时间内将Pickerview(在选项查看器上)灰色。我现在的问题是,每当用户按下按钮并将其定向到主屏幕,pickerview.alpha options viewController(我设置为灰色效果)都不会更改/当用户返回时不可见更改在时间段。另外,Pickerview.alpha在时间段expier时不会在选项视图controller屏幕上更改。

因此,为了遵循我的描述,这是我到目前为止的代码:

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)  
 }
}

我尝试了无尽的选择来实现它,但无法实现。因此,我真的很期待任何答案或帮助!

与善意

您可以轻松地禁用pickerview。要么完全隐藏:

PickerView.isHidden = true

然后稍后将其取消将其放置,或者只是简单地将其禁用:

PickerView.isUserInteractionEnabled = false

并在保存完成后再次启用它。无需灰色。

编辑:

您的代码可以设置挑选器视图的alpha没有错。确保您的插座链接到故事板中的挑选器视图。

最新更新