I added MTCircularSlider pod in my project. My viewController looks like below:
class ViewController: UIViewController {
@IBOutlet var slider: MTCircularSlider!
@IBOutlet var sliderLabel: UILabel!
let temperatureArray = ["7.5","8.0","8.5","9.0","9.5","10.0","10.5","11.0","11.5","12.0","12.5","13.0","13.5","14.0","14.5","15.0","15.5","16.0","16.5","17.0","17.5","18.0","18.5","19.0","19.5","20.0","20.5","21.0","21.5","22.0","22.5","23.0","23.5","24.0","24.5","25.0","25.5","26.0","26.5","27.0","27.5","28.0","28.5"]
override func viewDidLoad() {
super.viewDidLoad()
self.slider.addTarget(self, action: #selector(valueChange), for: .valueChanged)
}
@objc func valueChange() {
//Slider value change
let value = Float(slider.value)
let numberString = String(value)
let numberComponent = numberString.components(separatedBy :".")
let integerNumber = Int(numberComponent [0])!
let fractionalString = numberComponent[1].prefix(1)
var fractionalNumber:Int = Int(fractionalString)!
if fractionalNumber >= 5 {
fractionalNumber = 5
}
else {
fractionalNumber = 0
}
let temperature = String(integerNumber) + "." + String(fractionalNumber)
if temperature == "7.5" {
sliderLabel.text = NSLocalizedString("min", comment: "")
}
else if temperature == "28.5" {
sliderLabel.text = NSLocalizedString("max", comment: "")
}
else {
sliderLabel.text = temperature + " °C"
}
if temperatureArray.contains(temperature) {
let index = temperatureArray.firstIndex(of: temperature)
print(index!)
}
}
}
My UI like below:
My rootView is like below:
I am loading this viewController on TabBar with using below code:
class dashboardViewController: UIViewController {
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
switch item.tag {
case 0:
subTitleLabel.text = "Temperature"
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
self.view.insertSubview(viewController.view!, belowSubview: self.dashboardTabBar)
}
}
When I load viewController normally means when push this View then it works fine. But when I add on tab click then my function valueChange() is not called. Please give me any solution to solve this.
As given in GitHub - MTCircularSlider reference, the ValueChange method has one argument. Probably sender argument. Please see their code below.
But your code seems to be missing that. Can you try something like this?
Please let me know of this helps.