-(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。当我按下第一个按钮时我想显示ZERO
。当按第二个时,打印ONE
... 然后Two
, then Three
。我怎样才能做到这一点?我知道可以使用选择器键来完成此操作,但我不知道如何操作。
你没有告诉按钮name
任何地方。您可以在标题按钮标题中设置它[aa setTitle:name forState:UIControlStateNormal];
然后访问它fullscreen:
with [sender currentTitle]
.
如果您希望消息独立于标题,您可以创建自己的子类UIButton
存储消息或为每个按钮设置不同的目标操作。
此外,您构建名称的方式也很脆弱。像这样的东西可能会更好:
NSArray* names = [NSArray arrayWithObjects:@"ZERO",
@"ONE",
@"Two",
@"Three",
nil];
for (NSString* name in names) {
// Do stuff with name
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)