我一直在网上搜索这个答案,每一篇文章都跳过了实际编写动作代码的部分。我有一个简单的交互式UIButton。如果我能看到一个代码模板,上面写着“\在这里写行动代码”,那将是非常有用的! (这是iPad IOS7)
这是我能得到的......
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
我想我明白这是如何设置一个潜在的动作,但我在哪里编写动作本身的实际代码?
答案 0 :(得分:1)
我想更多地扩展已经在这里回答的内容,这两个回答都是正确的,但我想解释为什么/这一切都有效。
[button addTarget:self
action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
首先要注意的是; target
。
目标是一个类的实例,任何类。这个类的唯一要求是它必须实现action
。
action
是您在用户按下按钮时要调用的方法。
@selector(aMethod:)
基本上将此视为方法签名。因为Objective-c是一种动态语言,aMethod:
不需要存在,但如果没有,则会使程序崩溃。
所以,如果我们把这些放在一起,每当我想按下这个按钮时:
系统将在action
实例上调用target
方法。
对于方法本身,它看起来像这样
- (void) aMethod:(id)sender { }
答案 1 :(得分:0)
您可以将与操作相关的代码放在该类中名为aMethod:
的方法中- (void)aMethod:(id)sender {
// your code for the action goes here
}
您可能也想将UIControlEventTouchUpInside用于控件事件。
答案 2 :(得分:0)
由于您已将目标设置为self,因此应将aMethod:方法添加到同一个类中。
- (IBAction)aMethod:(id)sender
{
// do something here
}