如何以编程方式创建UIButton禁用

时间:2015-02-02 10:15:21

标签: ios objective-c uibutton

我在代码中创建了一些按钮。我想设置它禁用但我不知道如何。这是我的代码。

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
}

4 个答案:

答案 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