2016-10-10 5 views
0

クリックしたときにボタンのイメージを変更しようとしていますが、これはレーティングシステムのようなスターです。クリックすると画像は変わらず、クリックすると変更されません。私はストーリーボードにデフォルト画像を設定しました。クリックされたときコントロールの状態に基づいてボタンのイメージを変更する

class DetailViewController: UIViewController { 

    @IBOutlet weak var detailTitleViewLbl: UILabel!   
    @IBOutlet weak var detailDescription: UILabel! 

    @IBOutlet weak var yearLabel: UILabel! 

    @IBOutlet weak var star1: UIButton! 
    @IBOutlet weak var star2: UIButton! 
    @IBOutlet weak var star3: UIButton! 
    @IBOutlet weak var star4: UIButton! 
    @IBOutlet weak var star5: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
    } 

    @IBAction func star1Pressed() { 
     star1.setImage(#imageLiteral(resourceName: "favorite (1).png"), for: UIControlState.selected) 
    } 

    func star2Pressed() {} 
    func star3pressed() {} 
    func star4pressed() {} 

} 

enter image description here

+0

実際にコードを編集可能なテキストとして投稿する必要があります。コードに問題が発生する可能性があります(たとえば、viewDidLoadFunction内で関数 "start2Pressed"を宣言したなど)既に。 –

答えて

0

ボタンが選択状態に変更されません。ボタンをクリックしたときにボタンの選択したフラグをtrueに設定するコードを記述する必要があります。

複数のIBActionをボタンに接続することができます。そのため、選択したフラグをtrueに設定するアクションと、カスタムの「stuff」を設定するアクションを持つことができます。したがって、すべてのそのようなボタンのIBActionに選択された状態を設定するための "ボイラープレート"コード。

関連する問題