Прежде всего я должен сказать, что ваш вопрос был не очень ясным, мне потребовалось некоторое время, чтобы понять, чего вы на самом деле хотите достичь.Надеюсь, я правильно понимаю.Не просто набирая фактический код, который вам нужен, вот как я бы подошел к нему:
Я бы создал массив со словарями, содержащими букву в качестве ключа и точку в качестве значения, выглядя примерно так:
[
["A": CGPoint(x: 0, y: 0)],
["B": CGPoint(x: 0, y: 0)],
["C": CGPoint(x: 0, y: 0)],
["D": CGPoint(x: 0, y: 0)],
["E": CGPoint(x: 0, y: 0)],
["F": CGPoint(x: 0, y: 0)],
]
(или лучше, в этом массиве могут быть пользовательские модели, содержащие аналогичную информацию)
Затем используйте этот массив для построения UIB-кнопок на представлении, давая каждому UIButton ссылку на элемент в массиве.путем его подкласса, например, ключа словаря.
CustomButton: UIButton {
var key: String?
}
Затем при нажатии первой кнопки сохраните этот ключ в локальной переменной с именем start
, а при нажатии второй кнопки сохраните этот ключ в локальнойпеременная с именем end
.Затем выполните цикл по массиву и найдите соответствующий ключ start
и используйте значения в массиве, чтобы нарисовать линии, пока не найдете соответствующий ключ end
.
Так как я был в настроении, я создалпростая демонстрация игровой площадки, но обычно это не так.Вы не просто запрашиваете пример кода, вы просите о помощи для решения проблемы.
В любом случае, вы можете найти демо здесь: https://gist.github.com/pvroosendaal/f1617fe7e164bc94f0d37d3175252e2f
Кстати, этоЭто самый дурацкий кусок кода, который я написал, но он делает то, что вы хотите.
Надеюсь, это имеет смысл, в противном случае, пожалуйста, дайте мне знать.