2010-11-22 34 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代替您的自定義視圖 - 只是隱藏在這裏可能是不夠的。

相關問題