SEButtonを複数個持っており、下記のコードでレイアウトさせました。
タップ以外にも長押し出機能を追加したいと思い
let longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.resetSEday(_:)))
button.addGestureRecognizer(longPress)
を書き加えました。
その下にある
@objc func resetSEday(_ gesture: UILongPressGestureRecognizer) {
guard (gesture.view as? UIButton) != nil else {
print("Sender is not a button")
return
}
switch (gesture.state) { case .began: print("longPress start") case .ended: print("longPress end") default: break }
case .ended:以下に
タグによってアクションを分岐させようとしたのですが
タグの識別方法がわかりません。
苦し紛れに
@objc func resetSEday(_ gesture: UILongPressGestureRecognizer) のところに
@objc func resetSEday(_ gesture: UILongPressGestureRecognizer, _ sender:UIButton)と書き加えてみたのですが
エラーとなりました。
どのように書けば良いのかお教えください。
swift5
1 //SEButton layout setting 2 private func setSEButtonLayout(button: UIButton, left: Int, top: Int, tag: Int, text:String){ 3 4 let btnRect = getButtonRect(left: left, top: top) 5 6 button.frame = btnRect 7 button.backgroundColor = UIColor.seButtonColor 8 9 button.titleLabel?.numberOfLines = 2 10 button.titleLabel?.textAlignment = .center 11 button.titleLabel?.font = UIFont.systemFont(ofSize: doubleLetterBtnFontSize) 12 button.setTitle(text, for: UIControl.State.normal) 13 button.setTitle("", for: UIControl.State.highlighted) 14 button.setTitleColor(.white, for: UIControl.State.normal) 15 16 button.layer.masksToBounds = true 17 button.layer.cornerRadius = btnRect.size.width / 2 18 19 button.tag = tag 20 21 //button action 22 button.addTarget(self, action: #selector(setSEDay(_:)), for: .touchUpInside) 23 //kokokara 24 let longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.resetSEday(_:))) 25 button.addGestureRecognizer(longPress) 26// button.addTarget(self, action: #selector(setSEDay(_:)), for: .) 27 } 28 29 @objc func resetSEday(_ gesture: UILongPressGestureRecognizer) { 30 guard (gesture.view as? UIButton) != nil else { 31 print("Sender is not a button") 32 return 33 } 34 35 switch (gesture.state) { 36 case .began: 37 print("longPress start") 38 case .ended: 39 print("longPress end") 40 default: 41 break 42 43 } 44 45 46 } 47 48 // 長押しされたボタンは sender.tag で判別
回答1件
あなたの回答
tips
プレビュー