我有一个嵌入在静态TableViewCell中的UIDate Picker,目前我禁用了大部分代码,除了负责日期选择器的代码.
我正在使用日期选择器作为倒数计时器
所以这是一切,除了一些常见的插座和vars:
override func viewDidLoad() {
super.viewDidLoad()
// tfName.delegate = self
// tfDescription.delegate = self
//
datePicker.countDownDuration = 60
// pickerValueChanged(self)
}
@IBAction func pickerValueChanged(sender: AnyObject) {
seconds = Int(datePicker.countDownDuration)
hours = seconds / 3600
if hours == 0{
minutes = seconds / 60
} else{
minutes = seconds % 3600 / 60
}
labelDuration.text = "\(hours) hours \(minutes) minutes"
}
Run Code Online (Sandbox Code Playgroud)
第一次改变Picker的值时,值改变的函数根本不会触发,但是在它之后的旋转没有失败.
我试图调用它viewDidLoad,与pickerValueChanged(self)和作品,但没有解决问题.此外,我注释掉了pickerValueChanged函数中的每一行代码,viewDidLoad但它仍然没有触发第一次旋转..
感谢您的时间!
更新:添加图片
第一次旋转后,不会调用pickerValueChanged:

从第二次旋转开始,调用事件并更新标签:

尝试:
执行:
datePicker.setDate(NSDate(), …
我知道我可以初始化一组Ints,例如:
var intArray = [Int](count: 10, repeatedValue: 0)
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的:
var array = Array(count:6, repeatedValue:Array(count:0, repeatedValue:AnyObject()))
Run Code Online (Sandbox Code Playgroud)
(Xcode返回:无法构造AnyObject,因为它没有可访问的初始值设定项)
与我可以初始化数组相同的结果如下:
var anyObjectArray : [[AnyObject]] = [[],[],[],[],[],[]]
Run Code Online (Sandbox Code Playgroud)
但是,如果我需要像100行一样的话,那么做上面的话很难看
问题是我可以添加到我的函数中:
// init array
var anyObjectArray : [[AnyObject]] = [[],[],[]]
//inside a for loop
anyObjectArray[i].append(someValue)
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我当然比数组中的行数更高.如果我可以做以下事情,也可以接受这个问题的答案:
anyObjectArray[append a empty row here][]
Run Code Online (Sandbox Code Playgroud)
但那可能是愚蠢的:)
我希望有一种方法可以做到这一点因为我不喜欢有这样一条线:
var anyObjectArray : [[AnyObject]] = [ [],[],[],[],[],[],[],[],[],[],[],[],[],[],[], ... etc ]
Run Code Online (Sandbox Code Playgroud)
在我的页面顶部;)
感谢您的时间!