こんにちは
何回かに分けて質問しましたが、とうとうわかりませんでしたので希望をそのまま質問します。
行いたいことはfor文で生成した複数のUIButtonに対し、touchupinsideアクションをつけますが、タップした要素以外のUIButtonにも別な値変更を実行させたいのです。
なんとなくできそうなのにできないというところで行き詰まってます。
教えてください。
よろしくお願いします。
swift
1 2class LgBtn:UIButton { 3 var indexNumber:String? 4 var labelColor = UIColor(red: 142/255, green: 142/255, blue: 147/255, alpha: 0.9)//①始めはこの部分を動的に変更し、 5} 6 7class Archive: UIView{ 8 func archiveHeadSetup(){ 9 10 let langArray = [ 11 "Drive", 12 "Boxing", 13 "Grass", 14 "Muscle", 15 "Shake hand", 16 "Milk shake" 17 ] as [Any] 18 19 var horizontalPosition: CGFloat = 5 20 21 for (_, title) in langArray.enumerated() { 22 let lgBtn = UIButton() 23 lgBtn.setTitle("(title)", for:UIControlState.normal) 24 lgBtn.sizeToFit() 25 lgBtn.frame.origin = CGPoint(x: horizontalPosition, y: 28) 26 self.view.addSubview(lgBtn) 27 lgBtn.addTarget(self, 28 action: #selector(self.buttonTapped(sender:)), 29 for: .touchUpInside) 30 } 31 32 } 33 34 @objc func buttonTapped(sender : UIButton) { 35 let lgBtn = LgBtn() 36 lgBtn.labelColor = UIColor.red 37 lgBtn.setTitleColor(UIColor.red, for: .normal) 38 //それ以外への効果(この一行が違うので直したい) 39 //②再登録すればカラーが変更されると思っていたがされなかった。 40 sender.setTitleColor(UIColor.red, for: .normal) 41 //クリック自身への効果 42 //③自身に対するカラーは変更された。 43 } 44}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/19 04:34