6

の行をタップするとUITableView、その行が強調表示されて選択されます。これを無効にして、行をタップしても何も起こらないようにすることは可能ですか?

4

10 に答える 10

18
cell.selectionStyle = UITableViewCellSelectionStyleNone;

また[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

-tableView:didSelectRowAtIndexPath:さらに、に実装しないか、実装table view delegateする場合はアクションを実行しないセルを明示的に除外するようにしてください。

于 2014-02-24T19:19:56.150 に答える
4

tableView:willSelectRowAtIndexPath:のデリゲートメソッドを実装して戻ります。このメソッドからnilUITableViewを返すと、テーブルビューに行を選択しないように指示されるため、メソッドは呼び出されません。ただし、これを行っても行の強調表示は妨げられません。行の強調表示効果を無効にするには、セル選択スタイルを次のように設定します。上記の回答で説明されています。niltableView:didSelectRowAtIndexPath:UITableViewCellSelectionStyleNone

于 2013-03-21T08:36:54.697 に答える
2

設定するだけ:

cell.selectionStyle = UITableViewCellSelectionStyleNone;
于 2013-03-21T08:02:48.817 に答える
2
cell.selectionStyle = UITableViewCellSelectionStyleNone;
于 2013-03-21T08:04:10.110 に答える
1

強調表示を停止したい場合は、次のコードを使用します。希望する値を19にする

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

{
if(indexpath.row == '19')
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
else
cell.selectionStyle = UITableViewCellSelectionStyleGray;

}

ただし、セルの選択を制御したい場合

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

if(indexpath.row == '19')
[tableView deselectRowAtIndexPath:indexPath animated:NO];

}
于 2013-03-21T11:22:50.220 に答える
1

Swift 3の場合:

cell.selectionStyle = UITableViewCellSelectionStyle.none
于 2018-03-06T03:21:21.077 に答える
0

受け入れられた答えは私のために働いていませんでした。この問題は、次のビューが読み込まれたときにどの選択でも「グリッチ」のように見えるため、しばらくの間私を夢中にさせます。

私の解決策:実際のTableViewCell(作成したカスタムセル)の.xibファイルに移動して、セルを選択し、CellViewを選択する必要がありました。(セル内のサブビューではなく、セルを選択していることを確認してください。写真のように青色に変わります)。左側で[選択]->[なし]をクリックします。これはコードで行うのとまったく同じである必要がありますが、何らかの理由で機能していませんでした... ここに画像の説明を入力してください

于 2018-05-07T20:08:30.233 に答える
0

これはカスタムセルがある場合ですが、答えを探していたときにこの質問を見つけたので、他の人に役立つ場合に備えて、ここに置いておきたいと思いました。


カスタムセルに移動し、メソッドでに設定selectionStyleします。.noneawakeFromNib

override func awakeFromNib() {
    super.awakeFromNib()

    // disable selection
    selectionStyle = .none;
}

このカスタムセルを複数ので使用する場合は、使用UITableViewするたびにではなく、カスタムセルに1回だけ設定する必要がありUITableViewます:)

于 2018-09-04T17:40:34.313 に答える
0

Swift4の場合

cell.selectionStyle = UITableViewCell.SelectionStyle.none
于 2018-12-11T07:11:44.943 に答える
0

あなたはOBJCのためにこれを簡単に行うことができます:

 cell.selectionStyle = UITableViewCellSelectionStyleNone;
于 2019-03-05T22:23:35.120 に答える