2016-01-04 2 views
1

Я пытаюсь получить местоположение касания с помощью swift2.1 и получить ошибку «Значение типа« UITouch »не имеет« locationInNode »участника.Значение типа 'UITouch' не имеет статуса участникаInNode '

вот мой код

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    if let touch = touches.first { 
     let location = touch.locationInNode(self) 
     print(location) 
    } 
} 

Я посмотрел в источник и увидел, что в классе UITouch есть только общественное

func locationInView(view: UIView?) -> CGPoint { 
} 

это то, что я должен использовать или ...?

+1

В разделе "Работа с сенсорным События в SpriteKit" есть 'locatonInNode()' (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITouch_Class/#// apple_ref/ОКК/instm/UITouch/locationInNode :). Возможно, вам нужно «импортировать SpriteKit»? –

+0

спасибо NicolasMiari, получил его – mihatel

ответ

1

Как отметил NicolasMiari в комментарии, только если вы используете SpriteKit, это будет работать. locationInNode() - это функция SpriteKit, которая поможет вам найти точку в SKNode.

Если вы используете «стандартный» UIKit, где хотите получить местоположение на ощупь, вы должны использовать locationInView(), который принимает вид (!), А не сам контроллер.

class ViewController : UIViewController{ 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    if let touch = touches.first { 
     let location = touch.locationInView(self.view) 
     print(location) 
    } 
    } 

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