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]initWithString@"ZERO"];
        }else if(i==1){
            NSString *name=[[NSString alloc]initWithString@"ONE"];
        }else if(i==2){
            NSString *name=[[NSString alloc]initWithString@"Two"];
        }else{
            NSString *name=[[NSString alloc]initWithString@"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 を動的に作成しました。最初のボタンを押すと、表示したいZEROONE2 つ目を押すと、 ... を印刷しTwo、次にThree. これどうやってするの?セレクターキーの操作を使用して実行できることは知っていますが、方法がわかりません。

4

1 に答える 1

1

nameあなたはどこにもボタンを伝えていません。タイトル ボタンの title で設定し、 でアクセス[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
}
于 2009-06-05T10:41:52.917 に答える