以编程方式删除UIButton

时间:2014-12-01 17:26:21

标签: ios objective-c uibutton

我有以下代码来创建按钮。

UIButton *but= [UIButton buttonWithType:UIButtonTypeRoundedRect];
                [but addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
                [but setFrame:CGRectMake(655, 320, 35, 35)];
                but.translatesAutoresizingMaskIntoConstraints = YES;
                [but setTitle:@"Login" forState:UIControlStateNormal];
                [but setExclusiveTouch:YES];
                [self.view addSubview:but];

并使用此代码识别触摸。

-(void) buttonClicked:(UIButton*)sender
{

    [self text2];

}

我的问题是,如果按下此按钮,我该如何隐藏或删除我创建的按钮?

非常感谢

3 个答案:

答案 0 :(得分:1)

隐藏按钮的更多解释,按钮作为发件人来到您的方法,隐藏了这个:

-(void) buttonClicked:(UIButton*)sender
{
    [self text2];
    sender.hidden = YES;
}

要删除,您需要将其引用计数设为0,从superview中删除并将其设置为nil,NSLog要查看它不存在。

  -(void) buttonClicked:(UIButton*)sender
{
        [sender removeFromSuperview];
         sender = nil;
         NSLog(@"View sender %@",[sender description]);
}

答案 1 :(得分:1)

您需要在视图控制器中存储对按钮的引用,其方式类似于通过UI Builder添加按钮的方式,或标记按钮,并使用viewWithTag来检索它。

第二种方法可能更容易实施:

UIButton *but= [UIButton buttonWithType:UIButtonTypeRoundedRect];
but.tag = 123;
... // The rest of your code

当您需要将其删除时,请使用

[[self.view viewWithTag:123] setHidden:YES];

答案 2 :(得分:0)

[button removeFromSuperview];

Padpadpadpadpadpad

投票不投票文件