我正在尝试使用swift2.1获取触摸位置并获得错误“类型值'UITouch'没有成员'locationInNode'”。
这是我的代码
var myFromDate: NSDate?
var myToDate: NSDate?
let expensesItem: NSObject = (personItem.relToExpenses?.filteredSetUsingPredicate(NSPredicate(format:"(expenseDate >= %@ AND expenseDate =< %@)", myFromDate!, myToDate!)))!
let expensesTotal = expensesItem.valueForKeyPath("@sum.expenseTotal") as? NSDecimalNumber ?? 0
我查看了源代码,发现在UITouch课程中只有公开
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
let location = touch.locationInNode(self)
print(location)
}
}
是我应该使用的东西还是......?
答案 0 :(得分:1)
正如NicolasMiari在评论中指出的那样,只有当你使用SpriteKit
时,这才有效。 locationInNode()
是一个SpriteKit
函数,可帮助您找到SKNode
中的点。
如果您正在使用&#34;标准&#34; 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)
}
}
}