如何以编程方式隐藏按钮

时间:2010-11-22 11:28:02

标签: iphone cocoa-touch

我必须以编程方式创建一个按钮,并在该按钮上设置图像背景。有一个条件,我想隐藏该按钮并显示UITableViewCellAccessoryDetailDisclosureButton,但我不知道如何。

按钮仍然可见,UITableViewCellAccessoryDetailDisclosureButton落在上面。

这是我的代码:

if (filemodels.fileType == @"project" && filemodels.fileExpanse == @"none") {
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

    NSLog(@"open expanse");
    //[displayBut isHidden];
    //displayBut.hidden = YES;
    //[displayBut setImage:nil forState:UIControlStateNormal];
    displayBut.alpha = 0.0;

}

有人可以帮忙吗?

更新

关于Vladimir的回答。我按照他的建议更改了它,但按钮仍未隐藏。

代码是这样的:

if ([filemodels.fileType isEqualToString:@"project"] && [filemodels.fileExpanse isEqualToString:@"none"]) {

     cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
     [cell.contentView addSubview:nil];
     [displayBut setHidden:YES];
     [displayBut setBackgroundImage:nil forState:UIControlStateNormal];

}

2 个答案:

答案 0 :(得分:2)

您的代码的第一个问题是if-condition - 您不是比较字符串值,而是指针值,因此得不到正确的结果。在您的情况下比较字符串的正确方法是使用-isEqualToString:方法:

if ([filemodels.fileType isEqualToString:@"project"] && [filemodels.fileExpanse isEqualToString:@"none"]){
...

然后,如果您之前将单元格的accessoryView设置为displayBtn,那么您可能需要将其设置为nil以使单元格使用accessoryType而不是您的自定义视图 - 只是隐藏它可能是不够的。

答案 1 :(得分:1)

[合并更新/问题作为对OP的回答]