2016-11-26 1 views
0

Я пытаюсь обнаружить видимое событие UITouch.Когда произойдет событие касания. В настоящее время я использую ниже код для определения местоположения касания. Из-под кода я могу распечатать touch. Любой, помощь будет принята с благодарностью.Как определить местоположение UITouch, видимое в Swift 3

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
{ 
    if let touch = touches.first { 
     let position :CGPoint = touch.location(in: view) 
     print(position.x) 
     print(position.y) 
    } 
} 

Примечание: Я не пытаюсь нарисовать линию или что-нибудь вроде рисования app.I, Просто хочет видеть сенсорное событие visibly.When происходит.

Заранее спасибо.

+0

Вы хотите, чтобы нарисовать круг или что-то еще, чтобы указать, где на ощупь? – Sweeper

ответ

1

Если вы хотите, круг или что-то появляется, когда пользователь нажимает на экран, попробуйте следующее:

var touchIndicators: [UIView] = [] 
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    for touch in touches { 
     let location = touch.location(in: view) 
     let touchIndicator = UIView(frame: CGRect(x: location.x - 10, y: location.y - 10, width: 20, height: 20)) 
     touchIndicator.alpha = 0.5 
     touchIndicator.backgroundColor = UIColor.red 
     touchIndicator.layer.cornerRadius = 10 
     self.view.addSubview(touchIndicator) 
     touchIndicators.append(touchIndicator) 
    } 
} 

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    for indicator in touchIndicators { 
     indicator.removeFromSuperview() 
    } 
    touchIndicators = [] 
} 

Довольно простой. Добавьте круговые виды, когда пользователь коснется экрана и удалит их, когда пользователь поднимет пальцы. Вы также можете сделать это, используя UITapGestureRecognizer.

+0

Спасибо, помощник. Код работает. Я пытаюсь реализовать свой ответ в функции touch touch, но touchIndicator перемещается по всему представлению, как и ожидалось. Мне интересно, как сделать touchIndicator (один круг) просто следовать за пальцем ... – Joe

+0

@Joe, если вы хотите для этого просто удалите цикл for in и замените 'touch' на' touchhes.first! 'и измените массив на один экземпляр UIView. В касанияхMoved установите его рамку в новое положение – Sweeper

Смежные вопросы