2013-08-12 5 views
6

私はいくつかのセルを持つtableViewを持っています。各セルにはボタンもあります。ユーザーがボタンをクリックすると、セルはクリックできなくなりますが、ボタンはクリックできません。したがって、ユーザーがクリック可能でないセルのボタンをクリックすると、このセルは再びクリック可能になります。セルをクリックできないようにしますが、その上にあるボタンはクリック可能にしてください。

私が試した:

cell.userInteractionEnabled = NO; 

を...しかし、ボタンはもうクリック可能ではなかったです。

事前にお手数をおかけします。

EDIT 意味:セルをクリックすると、新しいビューが開きます。しかし、私は、セルが「クリック可能」でないときは何も起こりません。

+0

個々のコントロールに 'userInteractionEnabled'を設定してみてください。 –

+0

@MarcusAdamsしかし、どうすればいいですか? – user2650439

答えて

14

どのようにしても解除できませんか?あなただけのセルが選択できないようにしたい場合は、おそらくこのために求めている:選択が無効になっているときに実行されるコードを防ぎたい場合は

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

、ちょうどあなたのdidSelectRowAtIndexPath:内の選択プロパティをチェック方法。このような何か:あなたはそれをしたいとき

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.selectionStyle != UITableViewCellSelectionStyleNone) { 
     //(your code opening a new view) 
    } 
} 

あなたはまだあなたがセルが選択できるようにしたくないときUITableViewCellSelectionStyleNoneに設定し、このプロパティを使用してプレイしている、と背中UITableViewCellSelectionStyleBlue(またはUITableViewCellSelectionStyleGray)に設定し、覚えておいてください再度選択可能にする。

+0

+1は、デコーダリングの使用に+1します。 –

+0

しかし、私はまだセルをクリックすることができ、新しいviewControllerが開きます...私が認識する唯一の違いは、セルが選択されているときに色がないことです...または何かが間違っています。 – user2650439

+0

編集されました。それが助けられたかどうか試してみてください。 –

0

UITableViewCellSelectionStyleNoneselectionStyleと設定して選択を削除します。

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

そして、最初のセクションの最初の行だけがボタンを持っているし、何もしてはならない場合は、例えばそのデリゲートメソッドで選択することができ-tableView:didSelectRowAtIndexPath:

で何もしない:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSIndexPath *indexPathForDisabledCell = [NSIndexPath indexPathForRow:0 
                   inSection:0]; 
    if([indexPath compare:indexPathForDisabledCell] != NSOrderedSame) { 
     //Do whatever you do with other cells 
    } 
} 
関連する問題