Не уверен, почему вы этого хотите, но я подготовил это для вас:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
for (int y=0; y < 3; y++) {
for (int x = 0; x < 3; x++) {
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(40 + 80 * x, 40 + 80 * y, 80, 80);
unsigned buttonNumber = y * 3 + x + 1;
button.tag = buttonNumber;
[button setTitle:[NSString stringWithFormat:@"%u", buttonNumber] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview: button];
}
}
}
-(void)buttonPressed:(UIButton *)button
{
NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame));
}
По сути, все кнопки используют один и тот же обратный вызов, и там вы можете проверить кадр кнопки по мере необходимости.Если вам не нужно местоположение, но вы просто знаете, какая кнопка была нажата, вы можете просто использовать тег для каждой кнопки и проверить свойство тега в обратном вызове.