Xcode 目标C按钮网格

Xcode 目标C按钮网格,xcode,button,grid,coordinates,Xcode,Button,Grid,Coordinates,我需要制作一个9x9按钮网格(像数独板)供用户交互(只需触摸屏幕)并捕获按下按钮的“坐标” 有没有办法解决这个问题 提前谢谢。我不知道你为什么想要这个,但我为你准备了这个: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. for (int y=0; y < 3; y++) { for (

我需要制作一个9x9按钮网格(像数独板)供用户交互(只需触摸屏幕)并捕获按下按钮的“坐标”

有没有办法解决这个问题


提前谢谢。

我不知道你为什么想要这个,但我为你准备了这个:

- (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));
}
-(void)viewDidLoad
{
[超级视图下载];
//从nib加载视图后,执行任何其他设置。
对于(int y=0;y<3;y++){
对于(int x=0;x<3;x++){
UIButton*button=[UIButton button类型:UIButtonyPeroundRect];
button.frame=CGRectMake(40+80*x,40+80*y,80,80);
无符号按钮编号=y*3+x+1;
button.tag=按钮编号;
[按钮集标题:[NSString stringWithFormat:@“%u”,buttonNumber]用于状态:UIControlStateNormal];
[按钮添加目标:自我操作:@选择器(按钮按下:)用于控制事件:UIControlEventTouchUpInside];
[self.view addSubview:按钮];
}
}
}
-(无效)按钮按下:(UIButton*)按钮
{
NSLog(@“button%u--frame:%@”、button.tag、NSStringFromCGRect(button.frame));
}

基本上,所有按钮都使用相同的回调函数,您可以根据需要检查按钮框架。如果您不需要位置,但只知道按下了哪个按钮,您只需为每个按钮使用一个标记,然后检查回调上的标记属性。

谢谢您的帮助!对不起,我以前没有回答,因为我一直在学校很忙。问题是我需要制作一个记录“路线”或“路径”的应用程序(如点锁保护应用程序),所以我认为在拖动、禁用和启用所有直接邻居(右、左、上、下)时按下按钮。我的方法正确吗?@Jorge,如果使用mm grid按钮,效果很好。但是如果我想创建一个mn grid,我该怎么做呢?实际上我想创建一个2*1的网格?