UITableViewのセルの強調表示色を削除します


110

uitableviewセル選択のデフォルトの青色を削除したい。そこには選択色は欲しくない。カスタムセルクラスを作成していません。ラベルとボタンを追加してセルをカスタマイズしています。私はやってみました:

cell.selectioncolor = [UIColor clearcolor];

しかし、それはこのメソッドが廃止されたと言います。

回答:


320
cell.selectionStyle = UITableViewCellSelectionStyleNone;

スウィフト4更新

cell.selectionStyle = UITableViewCell.SelectionStyle.none

または

cell.selectionStyle = .none

3
そのコードをcellForRowAtIndexPath:に保持しましたが、それは保持する正確な場所ですか?
Pawriwes

9
@Pawriwes、はい。私が正しく覚えている場合は、Interface Builderを使用してセルを作成する場合、セルのXIBでもそのプロパティを設定できます
Vladimir

4
編集した場合、セルは選択されません:(
AsifHabib

54

Storyboardまたはで選択XIB


ここに画像の説明を入力してください


7
さらに、セルを選択しないよりも「テーブルビュー」で変更する場合は、「テーブルビューセル」を確認する必要があります。
Kernelzero

2
真実ではない@プルキット。これは、セルの選択状態のみを無効にします。これは、表示されるデータやその相互作用の処理とは関係ありません。すべての適切な登録セットがあり、他の機能を上書きしていないことを確認してください。
マイケル

これは完全に間違っています
ファティ



6

Objective-C:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

または

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

スウィフト4:

self.selectionStyle = UITableViewCellSelectionStyle.none;

スウィフト3:

cell.selectionStyle = .none

スウィフト2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

Storyboard / Xibだけを使用して変更する場合は、「選択スタイル効果」を削除するセルを選択し、「なし」として定義します。魔法のようにも機能します:D

ストーリーボード/ Xib


1
Swift 4:cell.selectionStyle = UITableViewCell.SelectionStyle.none
Naval Hasan

5

TableView Selectionスタイルを.noneに設定すると、アプリのテーブルビューの応答性とパフォーマンスに影響していました(didSelectRowAt indexPathタップが遅れていました)。この問題に対する私の解決策awakeFromNib()は、セルが最初に作成されたときに選択した背景ビューを非表示にすることでした:

selectedBackgroundView?.isHidden = true



2

セルでそれを行います:

class YourCell:  UITableViewCell {
    
    override func didMoveToSuperview() {
        selectionStyle = .none
    }

    ...
}

とても簡単です。


0

迅速5

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
        cell.selectionStyle = .none

        return cell
    }  

0

正しい答えは:

cell.selectedBackgroundView?.backgroundColor = <choose your color>

選択タイプは、別のプロパティであり、に設定すると.none、必要なものに加えて他の不要な副作用が発生します。

セルを強調表示しない場合は、背景ビューの色を強調表示しない場合と同じにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.