我有一个钢琴键盘。每个按钮(钢琴键)在 IB 中分配了不同的标签。该标签用于识别每个按钮,因此我可以播放属于该钢琴键的声音。我将每个钢琴键连接到以下 IBAction:
-(IBAction)playNoteFromKeyTouch:(id) sender{
UIButton *pressedButton = sender;
int tag = [pressedButton tag];
}
[pressedButton tag] 返回的值始终为 1。我尝试了不同的方法来获取它,例如:
-(IBAction)playNoteFromKeyTouch:(id) sender{
NSInteger tag = ((UIView*)sender).tag;
}
简单地说:
-(IBAction)playNoteFromKeyTouch:(id) sender{
int tag = [sender tag];
}
无论我做什么,即使我以编程方式为每个钢琴键分配标签,我总是得到标签 == 1。我可能遗漏了什么?
最佳答案
我认为,您应该采用另一种方法。创建一个 Octave 类,从 UIView 继承你的键,向键添加一个 Octave 属性和一个音符属性。
或者,您可以为每个 Octave 音阶创建一个数组,并检查发送者必须在哪个数组中使用哪个索引来确定音符。
标签很好,可以识别从 nib 文件加载的 View 。对于其他任何适当的面向对象的对象处理更好!
关于iphone - 发件人标签总是返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142561/