2017-08-18 2 views

答えて

0
あなたはすべての可視行のためにアクセスすることができますsetEditing方法で

このよう

tableView.visibleCells.forEach{ cell in 
     //define your custom cell class 
     If let customCell = cell as? YourCustomCellCalss{ 
     //call here the method to show/hide the switch or whatever you have for hiding it 
    customCell.hideSwitch() 
    } 
} 

しかし、あなたは、あなたcellForRowAt方法でself.isEditingためのチェックを追加する必要があるので、それは、のみ表示される行を変更しますその後、質問

にあなたのコードの多くを追加してください、私のコードは、カスタムセルの実装が異なる場合スイッチ

を隠す/表示するためにスクロールした後デキューされるすべての行について

はあなたがスイッチの隠されたプロパティを使用することができるもの

+0

ビュー(セル)を操作することは常に悪い考えです。ユーザーがスクロールすると予期しない動作が発生します。 – vadian

+0

スクロールはcellForRowたびに呼び出されますので、あなたはcellForRow方法でそれを処理する場合は、予期しない動作を取得することはありません。また、テーブル全体をリロードして1つのコンセントを非表示にすることはできません。セルにデータが含まれている場合は、メモリ使用量が増えます。 – Woof

+0

'reloadData'は可視セルのみを考慮し、スイッチを含む1つのセルよりも優れています。 – vadian

0

をする必要がありますなら、私に教えてください。このような。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "democell", for: indexPath) as! DemoViewCell 
     cell.selectionStyle = .none 
     if self.isEditing{ 
      cell.yourSwitch.isHidden = false 
    } 
    else{ 
     cell.yourSwitch.isHidden = false 
    } 


     return cell 
    } 
関連する問題