2010-11-22 18 views
2

ボタンをプログラムで作成し、そのボタンで画像の背景を設定する必要があります。条件が1つあり、そのボタンを非表示にして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

+0

ボタンを無効にするように設定する( 'displayBut.enabled = FALSE') – LordT

+0

@Kev、ありがとう –

答えて

1

[統合更新/ OPへの質問として回答]

2

第一の問題は、if条件である - あなたはいない文字列の値が、ポインタ値を比較するので、正しい結果を得ることはありません。以前displayBtnであるためにあなたのセルのaccessoryViewを設定している場合

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

その後、あなたはセル使用accessoryTypeを作る代わりにするためにゼロに設定する必要があるかもしれません:あなたのケースで文字列を比較するための正しい方法は、-isEqualToString:メソッドを使用することですあなたのカスタムビューは隠されているだけでは不十分かもしれません。

関連する問題