Я работаю над металлом, который показывает график сердечного ритма. между каждым пиком этого графика мне нужно добавить метку.
В этом процессе, график, перемещающийся справа налево, у меня есть массив, который динамически показывает координату x этой метки, например, когда одно значение должно отображаться на экране этот массив содержит только элемент и, если их больше, он содержит больше элементов, этот массив называется coordinates
Я использую для l oop, чтобы получить каждый элемент
for coordinate in coordinates {
}
У меня также есть другой массив, который динамически показывает текст метки, и он работает так же, как coordinates
. Он называется rrIntervalData
.
для определения этого ярлыка я задал еще один вопрос: Визуализация текста с помощью SKRenderer
вот мой код
skScene.size = CGSize(width: CGFloat(viewportSize.x), height: CGFloat(viewportSize.y))
for coordinate in coordinates {
var index = 0
skLabel.text = "\(rrIntervalData[index].value)"
skLabel.position = CGPoint(x: Int(coordinate), y: 200)
skLabel.fontSize = 20
skLabel.fontColor = SKColor.red
index += 1
}
skLabel
is SKLabelNode
. У меня также есть skScene.addChild(skLabel)
, который я добавил в init
родительского класса (я знаю, что это не правильно). Если я добавлю его здесь, произойдет сбой приложения, поскольку skLabel
уже добавлено в skScene
.
В текущей версии метка создается в каждой точке и перемещается вместе с графиком (как и ожидалось), но когда на экран выходит координата новой метки, первая метка исчезает и отображается в вторая позиция, и если я уменьшу график, когда он должен показывать более 20 меток одновременно, он всегда показывает метку в последней метке с правой стороны.
как мне создать динамическое c количество меток, которые устанавливаются здесь и придерживаются каждой координаты и значения?
Ваша помощь будет оценена, Прошло больше недели, что Я не мог справиться с добавлением этого ярлыка.