Ios 获取swift中UIButton按下的位置
我在视图上设置了几个DrumPad,它们都连接到drumPadPlay iAction方法。我想确定用户按下发送器按钮内的y轴位置,以调整鼓垫将播放的音量。我用的是斯威夫特 在这被标记为重复问题之前,我已经引用了这个问题,解决方案在当前版本的swift中不起作用,或者我不知道在回答“buttonView”的地方放什么。 这是我的代码-错误是“使用未解析的标识符'buttonView'”Ios 获取swift中UIButton按下的位置,ios,xcode,swift,uibutton,Ios,Xcode,Swift,Uibutton,我在视图上设置了几个DrumPad,它们都连接到drumPadPlay iAction方法。我想确定用户按下发送器按钮内的y轴位置,以调整鼓垫将播放的音量。我用的是斯威夫特 在这被标记为重复问题之前,我已经引用了这个问题,解决方案在当前版本的swift中不起作用,或者我不知道在回答“buttonView”的地方放什么。 这是我的代码-错误是“使用未解析的标识符'buttonView'” 我不知道buttonView用什么。我试过sender.superview!并搜索了发件人的属性/函数列表,
我不知道buttonView用什么。我试过sender.superview!并搜索了发件人的属性/函数列表,但找不到任何有帮助的内容
sender
是一个BNDrumPad
,它(大概)是UIView的一个子类,因此在本例中,您只需使用sender
。在您链接到的答案中,sender
参数被定义为AnyObject
,因此他们必须首先将其强制转换为UIView
@IBAction func drumPadPressed(sender: BNDrumPad, event: UIEvent) {
//...code for function here
// get any touch on the buttonView
if let touch = event.touchesForView(sender)?.anyObject() as? UITouch {
// print the touch location on the button
println(touch.locationInView(buttonView))
}
//...more code for function here
}
您链接到的答案是正确的。也许您可以编辑您的问题,以显示您尝试的代码和您遇到的错误/问题。我编辑问题以包含代码示例。我有一种感觉,这是一个如此简单的答案,另一个答案假设它将被知道用什么来取代buttonView,但我不明白。
@IBAction func drumPadPressed(sender: BNDrumPad, event: UIEvent) {
//...code for function here
// get any touch on the buttonView
if let touch = event.touchesForView(sender)?.anyObject() as? UITouch {
// print the touch location on the button
println(touch.locationInView(buttonView))
}
//...more code for function here
}