我在代码中创建了一些按钮。我想设置它禁用但我不知道如何。这是我的代码。
UIButton *btn_levels = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn_levels.frame=CGRectMake(x-10, y, 40, 40);
[btn_levels setTitle:[beginer_lvl objectAtIndex:i] forState:UIControlStateNormal];
[btn_levels addTarget:self action:@selector(btn_Method) forControlEvents:UIControlEventTouchUpInside];
btn_levels.tag =i;
btn_levels.backgroundColor=[UIColor blackColor];
btn_levels.tintColor=[UIColor cyanColor];
NSLog(@"btn nm=%@",[beginer_lvl objectAtIndex:i]);
[self.scroll addSubview:btn_levels];
这就是按钮方法,但我不知道该怎么做......
-(void)btn_Method
{
//to make button disable
}
答案 0 :(得分:1)
修改此行
[btn_levels addTarget:self action:@selector(btn_Method:) forControlEvents:UIControlEventTouchUpInside];
和这个方法
-(void)btn_Method:(UIButton*)sender
{
sender.enabled = NO;
}
答案 1 :(得分:1)
更改声明
[btn_levels addTarget:self action:@selector(btn_Method) forControlEvents:UIControlEventTouchUpInside];
到
[btn_levels addTarget:self action:@selector(btn_Method:) forControlEvents:UIControlEventTouchUpInside];
同时更改以下方法 -
-(void)btn_Method
{
//to make button disable
}
到
-(void)btn_Method:(UIButton*)button
{
//to make button disable
[button setEnabled:NO];
}
答案 2 :(得分:0)
已停用但可见
btn_levels.enabled = NO;
也是看不见的
btn_levels.hidden = YES;
答案 3 :(得分:0)
目标操作可以发送它将执行操作的对象。要使您的方法知道哪个按钮被点击,您需要进行定义以获取方法内的按钮。所以只需将按钮定义更改为这样,
- (void) btn_Method:(UIButton *)sender {...}
另外,如果你要在按钮上添加目标,你需要在方法名称之后添加一个冒号(:)来告诉编译器,这个动作将需要一个添加了动作的对象。所以这条线应该是这样的,
[btn_levels addTarget:self action:@selector(btn_Method:) forControlEvents:UIControlEventTouchUpInside];
^
在这里,我们将使用btn_Method动作调用获得类型sender
的{{1}}(您可以为您的参数命名)。就是这样,现在你可以用那个按钮做任何事情,所以在你的情况下你想让它禁用,所以方法看起来像这样,
UIButton