我在视图上设置了几个drumpads,它们都连接到drumPadPlay IBAction方法。我想确定发送者按钮内用户按下的y轴位置,以调整鼓垫将播放的音量。我正在使用swift。
在此之前被标记为重复的问题我已经引用了这个问题并且该解决方案对于当前版本的swift不起作用,或者我可能不知道应该把答案放在哪里“buttonView”。 Detect what is the location of the tap/press inside UIButton inside sender action method
@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'” 我不知道如何使用buttonView。我试过了sender.superview!并通过发件人的属性/功能列表进行搜索,找不到任何看起来有用的内容。
答案 0 :(得分:1)
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
}