2010-11-22 73 views
2

我必须以编程方式创建按钮,并在该按钮处设置图像背景。有一个条件,我想隐藏该按钮,并显示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]; 

} 
+0

如果您需要引出或提供更多信息,请使用注释或更新您的问题。为此不要使用答案。谢谢。 – Kev 2011-01-23 16:02:42

+0

我也会设置按钮被禁用('displayBut.enabled = FALSE') – LordT 2011-01-23 17:04:27

+0

@Kev,谢谢 – 2011-01-24 01:13:23

回答

1

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

2

与您的代码的第一个问题是,如果条件 - 你比较不是字符串值,但指针值,因此没有得到正确的结果。你的情况比较字符串正确的方法是使用-isEqualToString:方法:

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

然后,如果你之前设置你的细胞的accessoryView的是一个displayBtn则可能需要将其设置为nil,使电池使用accessoryType代替您的自定义视图 - 只是隐藏在这里可能是不够的。

相关问题