2017-08-13 21 views
0

私はカスタムUITableViewCellサブクラスを持っています。ハイライト状態を表示したいが選択状態は表示しません。ハイライト選択なしのUITableView

どのようにしてタッチ時(および解除時のハイライト表示)でも背景を強調表示できますが、選択状態のセルの背景は表示されません(独自のカスタム選択状態があります)。あなたは

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    tableView.deselectRow(at: indexPath, animated: true) 
} 

答えて

0
@implementation CustomTableViewCell 

- (void)awakeFromNib { 
    [super awakeFromNib]; 
    // Initialization code 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // You have your code here as you said 
} 

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 
{ 
    //Implement custom hilighting code 
} 

@end 
0

は、あなたがfalseallowsSelectionを設定することにより、テーブルビューを選択不可にする必要があります。

次に、このカスタムテーブルビューのセルを作成します。

class MyCell: UITableViewCell { 
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     backgroundColor = .red // or some other color 
    } 

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
     backgroundColor = .white 

    } 
} 

は、テーブルビューにこのカスタムセルを使用してください。あなたはcellForRowAtIndexPathにこのような何かを行うことができます。

let cell = MyCell() 
cell.isUserInteractionEnabled = true 
// configure the cell's other stuff 
return cell 
+0

これは実際に私はちょうどカスタム状態にしたいthough-セルの選択を解除します。 – arooo

0

まずUITableView delegateメソッドを実装する必要が

関連する問題