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?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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 .....
}
xCode 13.1, iPhone 12 - ios 15.3.1 suddenly unable to connect as test device. Device is accesible from Mac.