我見過一個問題/答案,其結果與我正在尋找的結果相似,但討論的代碼比我現在要複雜得多。我使用for()循環來創建一個從數組中的按鈕一堆。然後,我有一個動作,但我無法識別該按鈕。所以:從循環中識別UIButton
NSArray *numbers = [NSArray arrayWithOjbects:@"1", "2", "3", nil];
for (int i = 0; i < [numbers count]; i++) {
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(recognize:) forControlEvents:UIControlEventTouchDown];
[button setTitle:[numbers objectAtIndex:i] forState:UIControlStateNormal];
button.frame = CGRectMake(x, y, w, l);
}
然後:
-(void) recognize:(id)sender {
NSLog (button.titleLabel.text);
}
但是,我只得到陣列(3)的最後一個成員,無論按下按鈕的。我想我錯過了一步 - (無效)承認:(身份證)發件人......我應該知道......但它現在完全逃脫了我。
/維拉德
您是否將它們添加到視圖的某個位置?有一個屬性'標籤'用於識別元素。在循環結束時,你應該做一些類似'[self.view addSubview:button]' – DanSkeel
是的,稍後:[board addSubview:button]。我之前忘了添加,因爲它和代碼的其餘部分是重新計算位置。 – Vlad