2011-10-20 10 views
0

の位置を特定:次のように、私は5つのボタンを動的に作成したUIButton

float xpos=0,ypos=0; 
    for (int i = 0; i < 5; i++) 
     { 
      but = [UIButton buttonWithType:UIButtonTypeCustom]; 
      [but setTag:i]; 
      [but setImage:[UIImage imageNamed:@"btfrnt.png"] forState:UIControlStateNormal]; 
      [but setFrame:CGRectMake(xpos, ypos, 40, 40)]; 
      xpos+=80; 
      [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside]; 
      [self.view addSubview:but]; 
     } 

ボタンのいずれかのClickイベントでは、私は私がクリックしたボタンの位置を見つけたいです。 ...

-(void)checkboxButton:(UIButton*)sender 
{ 
    NSLog(@"%d",xpos); 
} 

しかし、それは、そのタグを用いて、それを識別するために、どのような方法があります...最後のボタンの唯一のXPOSを表示しますか?

答えて

0

私はそれを取るxPosはグローバル変数です - もちろん最後のボタンの値が含まれています、それは最後に設定された値です。

ボタンの位置については、グローバル変数に何も保存する必要はありません。クリックイベントハンドラで配信される送信側オブジェクトから取得するだけです。これはUIButtonポインタであり、UIButtonオブジェクトにはOrigin.xとorigin.yを持つフレーム構造だけでなく、size.widthとsize.heightもあります。

+0

おかげで.... – Icoder

1

これを試してみてください。

-(void)checkboxButton:(UIButton*)sender 
{ 
    NSLog(@"%f %f",sender.frame.origin.x,sender.frame.origin.y); 
} 
0

あなたはこれを試すことがあります...それが正常に動作

-(void)checkboxButton:(UIButton*)sender { 
    UIButton *button = (UIButton *)sender; 
    CGRect rect = button.frame;  //You may use sender.frame directly 
    NSLog(@"X: %d", rect.origin.x); 
    NSLog(@"Y: %d", rect.origin.y); 
    NSLog(@"Width: %f", rect.size.width); 
    NSLog(@"Height: %f", rect.size.height); 
} 
関連する問題