2012-02-05 11 views
0

私は(単に画面をタッチ)し、押されたボタンの「座標」を取り込む対話するユーザーのために(数独ボードのような)9x9のボタングリッドを作成する必要があります...のObjective Cボタングリッド

どれでもこれを解決する方法のアイデア?

ありがとうございます。

答えて

1

あなたが確認したくない理由は、私はあなたのために、この準備:

- (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)); 
} 

基本的に、すべてのボタンが同じコールバックを使用し、必要に応じてそこにあなたがボタンフレームを確認することができます。場所が必要ではなく、どのボタンが押されたかを知るだけで、各ボタンのタグを使い、コールバックのタグプロパティを確認することができます。

+0

ありがとうございます!申し訳ありません私は学校で非常に忙しいように私は前に答えなかった。 私は、ドラッグアンドドロップしながらボタンを押して、すべての直接の隣人(右、左、右、上下)。これを達成するために私は正しい方法でいますか? –

+0

@Jorge、それはm * mグリッドbutton.But m * nグリッドを作成したい場合はそれを行うことができますどのようにうまくいきますか?実際に私は2 * 1のグリッドを作成したいですか? – user930195