我有什么理由不这样做吗?我是编程iPhone的新手,所以我只是想检查一下,由于某些原因或其他原因,我的内存占用率并不高。
我正在循环中创建按钮(短语中每个字母一个),然后可能会有多达100个此代码同时运行的实例,因此如果出现问题则可能是一个大问题。
感谢您的建议!
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:l];
CGRect buttonRect = CGRectMake(11+charact*20, -40 + line*50, 18, 21);
aButton.frame = buttonRect;
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aButton addTarget:self action:@selector(thisButton:) forControlEvents:UIControlEventTouchUpInside];
[aButton setTitle:@" " forState:UIControlStateNormal];
[gameScroll addSubview:aButton];
答案 0 :(得分:1)
您正在为相同的事件类型注册2个不同的选择器。会发生什么 - 第二个将覆盖第一个。这有什么意义?可能是您的代码示例中有拼写错误,但无论如何,您可以为不同的事件注册不同的选择器。如果你在循环中创建按钮,这不是问题,因为每次它都会为这个目标注册一个不同的对象。您的功能可能如下所示:
- (void) buttonClicked:(id) sender
{
// your code
}
其中sender
是对象,它将选择器发送到目标。在这种情况下你的按钮。
至于他们同时运行......他们是否在不同的线程上运行?通常GUI仅在主线程上运行,因此如果这是一个问题,它将不会同时发生。
希望它能回答你的问题
答案 1 :(得分:0)
对不同类型的控制事件进行多个操作是有意义的。
对于同一控件事件,将调用这些不同的操作。您是否会在这些不同的行动中执行相同的任务?
如果你想在这些不同的动作中做不同的任务,你不能在同一个动作中使用某些条件做同样的事情吗?