2009-06-04 9 views
0
-(void)mybuttonclick{ 
UGFloat p=120; 
    for(int i=0;i<3;i++){ 
     UIButton *aa = [UIButton buttonWithType:UIButtonTypeCustom]; 
     if(i==0){   
      NSString *name=[[NSString alloc][email protected]"ZERO"]; 
     }else if(i==1){ 
      NSString *name=[[NSString alloc][email protected]"ONE"]; 
     }else if(i==2){ 
      NSString *name=[[NSString alloc][email protected]"Two"]; 
     }else{ 
      NSString *name=[[NSString alloc][email protected]"Three"]; 
     } 
    [aa setFrame:CGRectMake(0.0f, 0.0f, 500.0f, 40.0f)]; 
    [aa setCenter:CGPointMake(100.0f,p)]; 
    [aa setBackgroundColor:[UIColor blueColor]]; 
    [aa addTarget:self action:@selector(fullscreen:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.window addSubview:aa]; 
    p=p+50; 
    } 
} 

//----------------fullscreen method-------------------- 
-(void) fullscreen:(id)sender{ 

    NSLog(@"button pressed on %@",[sender Stringvalue]); 
} 

ここでは、3つのUIButtonを動的に作成しました。最初のボタンを押すとZEROと表示したい。 2番目を押すと、ONE ... Two、次にThreeと印刷されます。これどうやってするの?私はそれがセレクターキーの仕事を使用して行うことができます知っているが、私はどのようにわからない。Uibuttonイベント

答えて

1

nameのボタンはどこにも表示されていません。タイトルボタンのタイトルに[aa setTitle:name forState:UIControlStateNormal];と設定し、fullscreen:[sender currentTitle]でアクセスしてください。

メッセージをタイトルから独立させる場合は、独自のサブクラスUIButtonを作成してメッセージを保存するか、各ボタンに対して異なるターゲットアクションを設定することができます。

また、名前を構築する方法は壊れやすいです。このようなものが良いかもしれません:

NSArray* names = [NSArray arrayWithObjects:@"ZERO", 
              @"ONE", 
              @"Two", 
              @"Three", 
              nil]; 
for (NSString* name in names) { 
    // Do stuff with name 
}