学習の一部は完了しましたSwiftしかし、私は小さな壁にぶつかりました。それでも、私はこれに少し慣れていないと確信しています。簡単な解決策がありますが、問題が発生しています。以下のボタンの選択/選択解除の方法を理解することは私がこれまでに持っていることであり、クリックするとボタンがチェックマークに変わります...私はそこまで到達しましたが、もう一度クリックすると明らかにそのボタンの選択を解除する必要があります必要に応じてもう一度クリックできるようにします。
@IBAction func buttonPressed(sender: AnyObject) {
sender.setImage(UIImage(named: "Checkmark.png"), forState: .Normal)
}
Swift 3注:_.selected
_および_.checked
_は、SDKでは小文字のUIControlState
値になり、一部のメソッドの名前が変更されました。
_let button = UIButton()
button.setImage(UIImage(named: "Unchecked"), for: .normal)
button.setImage(UIImage(named: "Checked"), for: .selected)
_
UIImage(named:)
の代わりにXcode8で画像リテラルを使用できるようになりました。
_#imageLiteral(resourceName: "Unchecked")
_
スウィフト2:
ボタンの_.Selected
_状態を「チェック済み」状態として使用し、_.Normal
_状態を「チェックなし」状態として使用してみませんか。
_let button = UIButton()
button.setImage(UIImage(named: "Unchecked"), forState: .Normal)
button.setImage(UIImage(named: "Checked"), forState: .Selected)
// ...
@IBAction func buttonPressed(sender: AnyObject) {
if let button = sender as? UIButton {
if button.selected {
// set deselected
button.selected = false
} else {
// set selected
button.selected = true
}
}
}
_
選択した状態で設定する必要はありません。私はSwiftで次の方法を使っています:
func selectDeselect(sender: UIButton){
sender.selected = !sender.selected
if(sender.selected == true)
{
sender.setImage(UIImage(named:"select_heart"), forState: UIControlState.Normal)
}
else
{
sender.setImage(UIImage(named:"heart"), forState: UIControlState.Normal)
}
}
ここにSwift 4。の作業コードがあります
ボタンIBAction
コンセントをUIButton
として接続し、ストーリーボードからデフォルトのボタン画像を必要に応じて設定する必要があることを確認してください。
@IBAction func btnTapped(_ sender: UIButton) {
if sender.currentImage == UIImage(named: "radio_unchecked"){
sender.setImage(UIImage(named: "radio_checked"), for: .normal)
}else{
sender.setImage(UIImage(named: "radio_unchecked"), for: .normal)
}
}
ストーリーボードからデフォルト状態の画像をチェック解除し、ストーリーボードから選択した状態の画像をチェックするように設定します。
@IBAction func buttonPressed(sender: AnyObject) {
buttonOutlet.isSelected = !buttonOutlet.isSelected
}