2017-03-05 9 views
1

私は色のリストからなるテーブルビューコントローラを持っています。ユーザーが最も好きな色に星を付けることができるようにしたい。私は現在これを行うためにスイッチを使用していますが、私は視覚的に魅力的なものを求めています。私はボタンが機能するかもしれないと思う。しかし、ボタンにスイッチと同様のプロパティを持たせたい(例:isOnプロパティ)。どうすればいい?スイッチを交換するボタン

答えて

1

UIButtons もスイッチのような機能を持っています。

IBでは、「選択された状態の構成」のためにInterface Builderで別のイメージを設定します。その後

、あなたのボタンのご@IBActionでこれを追加します(「ボタン」は、ボタンの名前です):

self.button.selected = !self.button.selected 
+0

下の画像のようになります

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark } 

を.checkmarkするように設定することができます。これは最も簡単な解決法であり、受け入れられた答えです。 –

0

サブクラスが存在する理由です。

class StarButton : UIButton { 

    override var isSelected: Bool { 

     willSet { 

      let image = UIImage(named: newValue ? "FilledStar" : "EmptyStar") 
      self.setImage(image, for: .normal) 
     } 
    } 
} 
0

あなたはtableviewcellのaccessoryTypeプロパティを使用することができます。ここでは未テスト例です。あなたは、これは私が質問をした後、私はこれを実現 enter image description here