Post

Replies

Boosts

Views

Activity

IOS-Stocks application similar UI gesture
Hello I am trying to create a graph screen similar to the IOS-Stocks application which is long-press tracking and touch scroll options. I am using Highcharts framework. Changing longPressView.options.tooltip.followTouchMove = true makes the graph trackable. And longPressView.options.tooltip.followTouchMove = false makes the graph scrollable. let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressedTest)) longPressRecognizer.allowableMovement = 50 view.addGestureRecognizer(longPressRecognizer) @objc func longPressedTest(sender: UILongPressGestureRecognizer) {           let longPressView = sender.view as! HIChartView           switch (sender.state) {     case UILongPressGestureRecognizer.State.began:       longPressView.options.tooltip.followTouchMove = true       print("longpress began")     case .ended:       longPressView.options.tooltip.followTouchMove = false       print("longpress ended")     case .cancelled:       longPressView.options.tooltip.followTouchMove = false       print("longpress cancelled")     case .failed:       longPressView.options.tooltip.followTouchMove = false       print("longpress ended")     case .possible:       longPressView.options.tooltip.followTouchMove = true       print("longpress possible")     case .changed:       longPressView.options.tooltip.followTouchMove = true       print("longpress changed")     @unknown default:       longPressView.options.tooltip.followTouchMove = false       print("longpress default")     }         } Am I using the UILongPressGesture wrong?
2
0
393
Jun ’22
Correct way to declare variable that loads data from CSV file
Dear all I am relatively new to swift development. Here is a code snippet that tries to create a controller and data model variables that dynamically load data from a CSV file. I do have model data as a data model and CSV files of data belonging to each month. I have to load 3 of them once the class load and during usage loads others. Such as initial load (*11, 10, 9) then (*10, 9, 8), etc. The code works all right, but when I use the mergedData inside viewDidLoad() the loading from the CSV process repeats 3 times. I don't know what causes this extra loading. Am I declaring the variables wrong? class TestController: UIViewController,  UIViewControllerTransitioningDelegate {       private var _data3Year: Int = 0   var data3Year: Int {     get {       let year = Calendar.current.component(.year, from: Date())       //return year       _data3Year = 2021       return _data3Year     }     set {       _data3Year = newValue     }   }       var data3Month: Int = 11       private var _data2Year: Int = 0   var data2Year: Int {     get {       let year = Calendar.current.component(.year, from: Date())       //return year       _data2Year = 2021       return _data2Year     }     set {       _data2Year = newValue     }   }       var data2Month: Int = 10       private var _data1Year: Int = 0   var data1Year: Int{     get {       if data2Month == 1 {         _data1Year = data2Year - 1         return _data1Year                 }       else{         _data1Year = data2Year         return _data1Year       }     }     set{       _data1Year = newValue     }   }   var data1Month: Int = 9       var _data1:[ModelData] = []       var data1:[ModelData] {     get {       let data1YearString = String(data1Year)       var data1MonthString = ""       if (data1Month < 10){         data1MonthString = "0"+String(data1Month)       }       else{         data1MonthString = String(data1Month)       }       let _data1:[ModelData] = loadCSV(from: String(modelID)+"-"+data1YearString+data1MonthString)       return _data1     }     set {       _data1 = newValue     }   }       private var _data2:[ModelData] = []       var data2:[ModelData] {     get {       let data2YearString = String(data2Year)       var data2MonthString = ""       if (data2Month < 10){         data2MonthString = "0"+String(data2Month)       }       else{         data2MonthString = String(data2Month)       }       let _data2:[ModelData] = loadCSV(from: String(modelID)+"-"+data2YearString+data2MonthString)       return _data2     }     set{       _data2 = newValue     }   }       private var _data3:[ModelData] = []       var data3:[ModelData] {     get {       let data3YearString = String(data3Year)       var data3MonthString = ""       if (data3Month < 10){         data3MonthString = "0"+String(data3Month)       }       else{         data3MonthString = String(data3Month)       }       let _data3:[ModelData] = loadCSV(from: String(modelID)+"-"+data3YearString+data3MonthString)       return _data3     }     set{       _data3 = newValue     }   }       private var _mergedData:[ModelData] = []   var mergedData:[ModelData] {     get {       var merged_data:[ModelData] = []       merged_data = data1 + data2 + data3       return merged_data     }     set {       _mergedData = newValue     }   }         override func viewDidLoad() {         super.viewDidLoad() mergedData .....      }
1
0
268
Jun ’22