swift - 倒计时计时器后 UIPickerView 不会在其他 ViewController 上更新

标签 swift timer uiviewcontroller uipickerview alpha

我有一个选项 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)  
 }
}

为了实现这一目标,我尝试了无数的选择,但未能成功。 因此,我真的很期待任何答案或帮助!

谨致问候

最佳答案

您可以轻松禁用 pickerView。要么完全隐藏它:

PickerView.isHidden = true

然后稍后取消隐藏它,或者只是禁用它:

PickerView.isUserInteractionEnabled = false

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

编辑:

您设置选择器 View 的 alpha 的代码没有任何问题。确保您的 socket 链接到 Storyboard中的选择器 View 。

关于swift - 倒计时计时器后 UIPickerView 不会在其他 ViewController 上更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520191/

相关文章:

ios - dateFromString 对某些值返回 nil

swift - 如何在 Swift 中获取破折号前的第一个单词?

c# - Timer.Interval 问题

c# - TimeSpan 倒数计时器

ios - 如何删除 UIViewController 类的 xib 文件?

ios - 日期到毫秒并在 Swift 中返回日期

ios - 在 Swift 中设置多次通知

java - 做某事,如果花费的时间超过 x 秒,则继续执行下一个任务

ios - 使用两个不同的 XIB 查看 Controller ......棘手

ios - 如何自动调整 ViewController Root View 的大小以适应其内容?