4

セルの相互作用を無効にしたい。私の機能では:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

追加した

Cell.userInteractionEnabled = NO;

また、セルの相互作用は無効になっていますが、アクティブなボタン (ButtonLabel) を残したいと思います。

Cell.userInteractionEnabled = NO;
Cell.ButtonLabel.userInteractionEnabled = YES;

上記のコードは機能しません。逆に大丈夫なので、それは奇妙です:

Cell.userInteractionEnabled = YES;
Cell.ButtonLabel.userInteractionEnabled = NO;

ボタンは無効になっていますが、セル番号はありません。

セルが無効になっているときにボタンをアクティブにする方法は?

4

3 に答える 3

3

UIView (またはそのサブクラス) の任意のインスタンスに設定userInteractionEnabledするNOと、すべてのサブビューでのユーザー操作が自動的に無効になります。これはまさにあなたが説明した動作です。

あなたがしたいことは、UITableViewCell の選択を無効にすることだと思います。それにはいくつかの方法があります。

  1. すべてのセルを完全に選択できないようにする場合は、 に設定tableView.allowsSelectionするだけNOです。
  2. 特定のセルのみを選択しないようにしたい場合は、Cell.selectionStyle = UITableViewCellSelectionStyleNone;

また、選択アクションをトリガーしてはならないセルをオーバーライド- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;して返すこともできます (ただし、これだけでは、選択のハイライトが表示されなくなりません)。nil

于 2013-10-24T08:58:15.533 に答える
1

あなたのコメントによると、特定のセルのプッシュ接続を無効にしたいです。あなたができることは、そのセルが実行されるべきかどうかを shoudlPerformSegueWithIdentifier でチェックインすることです。

どのセルがタッチされたかを保存する必要があります。

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
    if (/*check if the selected cell should perform the segue*/) {
        return YES;
    }

    return NO;
}
于 2013-10-24T09:34:47.597 に答える