问题描述
在滚动滑块时,我不知道如何更改当前时间值(由dateFormatter变量返回)。 我试图将dateFormatter变量转换为double,但是没有成功。
library(dplyr)
library(tidyr)
df %>%
group_by(cus_no) %>%
fill(rate,.direction = "down") %>%
ungroup()
# A tibble: 20 x 4
customer Month tenor rate
<dbl> <dbl> <dbl> <dbl>
1 1 1 5 0.2
2 1 2 5 0.3
3 1 3 5 0.4
4 1 4 5 0.5
5 1 5 5 0.6
6 1 6 5 0.6
7 1 7 5 0.6
8 1 8 5 0.6
9 1 9 5 0.6
10 1 10 5 0.6
11 2 1 3 0.1
12 2 2 3 0.2
13 2 3 3 0.3
14 2 4 3 0.3
15 2 5 3 0.3
16 2 6 3 0.3
17 2 7 3 0.3
18 2 8 3 0.3
19 2 9 3 0.3
20 2 10 3 0.3
我想将滑块的每次移动减小-1小时的时间值。 在移动滑块时,changeTime函数必须注意更改时间值。
var c: Double
c = Double(dateFormatter.string(from: Date())
解决方法
雨燕5
每当您更新日期时,从当前日期减少滑块专用的小时数,请尝试以下操作:
class ViewController: UIViewController
{
@IBOutlet weak var simpleSlider: UISlider!
@IBOutlet weak var dateLabel: UILabel!
var timer = Timer()
var currentSliderStep: Int = 0
var dateFormatter = DateFormatter()
override func viewDidLoad()
{
dateFormatter.timeStyle = .short
labelTime.text = dateFormatter.string(from: Date())
timer = Timer.scheduledTimer(timeInterval: 60,target: self,selector: #selector(updateTimeLabel),userInfo: nil,repeats: true);
}
@objc func updateTimeLabel()
{
let newDate = Calendar.current.date(byAdding: .hour,value: -currentSliderStep,to: Date())!
labelTime.text = dateFormatter.string(from: newDate)
}
@IBAction func sliderMoved(sender: AnyObject)
{
let value = simpleSlider.value
let step: Float = 1
let roundedValue = round(value / step) * step
currentSliderStep = Int(roundedValue)
}
}
注意:使用滑块,在调整“主要动作已触发”事件时将触发该事件。这是处理的完美事件(将此事件链接到
sliderMoved
)。