0

の y 軸の値をインクリメントすることに基づいて for ループを使用して 5 つのボタンを作成しましたCGRectMake。しかし、各ボタンをクリックしたときにボタンの背景色を変更するにはどうすればよいですか?また、タイトルと各ボタンのアラートビューを持っていますか??plsは私に答えることを提案します..

//array taken for button titles
NSArray *array1=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

int k=0;  

for(int i=50;i<=350;i=i+70)
{
  button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
  button.frame=CGRectMake(30,i,35,40);
  [button addTarget:self action:@selector(buttonclicked:) forControlEvents:UIControlEventTouchUpInside];
  if (k<[array1 count])
  {
    [button setTitle:[array1 objectAtIndex:k] forState:UIControlStateNormal];
  }
  k++;  
  [self.view addSubview:button]; 
}
4

2 に答える 2

0

これを試して

 -(void) buttonClicked:(id) sender
{
  UIButton * button = (UIButton*) sender;
   button.backgroundColor = [UIColor yellowcolor];
   [button setTitle:@"Hello" forState:UIControlStateNormal];
}
于 2012-08-01T05:29:03.400 に答える
0

各ボタンを設定し、tagそれが呼び出されたときに buttonclicked: が呼び出され、それを使用してtagどの背景色に設定するかを決定します::

int temptag;
temptag = 0;
for(int i=50;i<=350;i=i+70)
{
  button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
  button.frame=CGRectMake(30,i,35,40);
  [button addTarget:self action:@selector(buttonclicked:)  forControlEvents:UIControlEventTouchUpInside];
  button.tag = temptag;
  if (k<[array1 count])
  {
    [button setTitle:[array1 objectAtIndex:k] forState:UIControlStateNormal];
  }
  k++;  
  temptag++;
  [self.view addSubview:button]; 
}


-(void)buttonclicked:(id)sender
{
  UIButton *btn = (UIButton *)sender;
  switch (btn.tag) {
    case 0:
      btn.backgroundColor = [UIColor redColor];
      break;
    case 1:
      btn.backgroundColor = [UIColor grayColor];
      break;
    case ...:
      ....
    default:
      break;
    }
}
于 2012-08-01T05:31:51.327 に答える