0
こんにちは、皆さん。私はあなたがそれをクリックすると空の星から満たされた星に変わる星型のボタンを作ろうとしています。この星はテーブルビューに含まれているため、個々のセルの右端に星があります。UIViewサブクラス:テーブルビューの星型ボタンがタッチされても反応しません
私がシミュレータを実行すると、空の星はすべて上手く表示されますが、形状を塗りつぶしに変更することはできません。私はウェブ全体を閲覧しましたが、問題の原因を解決する方法が見つかりません。
私は、星型ボタンをデザインするために作ったUIViewサブクラスを含めました。
また、これは初めてstackoverflowを使用しているので、質問のフレーズやヘルプを受け取る良い方法がある場合は教えてください。
ありがとうございます。
import UIKit
class StarFilling: UIView {
//MARK: Properties
var marking = 0{
didSet {
setNeedsLayout()
}
}
var starList = [UIButton]()
// MARK: Initialization
required init?(coder aDecoder: NSCoder){
super.init(coder: aDecoder)
let filledStarImage = UIImage(named: "filledStar")
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 33, height: 33))
button.addTarget(self, action: "fillingStar", forControlEvents: UIControlEvents.TouchDown)
button.setImage(emptyStarImage, forState: .Normal)
button.setImage(filledStarImage, forState: .Selected)
button.setImage(filledStarImage, forState: [.Highlighted, .Selected])
addSubview(button)
}
// MARK: Button Action
func fillingStar(button: UIButton){
if(marking == 0){
marking = 1
}
else{
marking = 0
}
updateButtonSelectionStates()
}
func updateButtonSelectionStates(){
if(marking==1){
for button in starList{
button.selected = true
}
}
}
}あなたがイベントを受け取るために、あなたのサブビュー、あなたの星のボタンの順にtouchesBeganとpointInsideをオーバーライドする必要が
こんにちは、あなたのアドバイスをありがとう!本当にあなたがこれに入れた努力を感謝します。 – Daniel
唯一の問題は、XCodeがThread1:Signal SIGABRTエラーをスローすることです。 私はすべてのアウトレットをチェックし、インターネットからできることをしましたが、残念ながらエラーが続きます。 この問題に対するご意見はありますか? – Daniel
解決済み!あなたのコードをありがとう:)。すべてがうまくいきました。ついに私はとても安心しています。 – Daniel