私はSwift 3の新機能です。現在、私はUIBarButtonItemを持っています。このボタンアクションを複数回押した場合にのみトリガーされるようにする方法は?たとえば、ViewControllerは、ユーザーがこのボタンを2回押したときにのみ表示されます。複数回押した場合にのみボタンアクションをトリガする方法は?
0
A
答えて
0
あなたのUIBarButtonItemに下記のように UITapGestureRecognizerを追加するだけです。
func addBarButton() -> UIBarButtonItem
{
let btnImage = UIImage(named: "imageName")!
let imageButton : UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 25, height: 25))
imageButton.setBackgroundImage(btnImage, for: UIControlState())
let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.buttonAction(_:)))
doubleTap.numberOfTapsRequired = 2
imageButton.addGestureRecognizer(doubleTap)
return UIBarButtonItem(customView: imageButton)
}
あなたのviewDidLoad関数からの蛇行線を呼び出します。
navigationItem.rightBarButtonItems = [addBarButton()]
1
UIBarButtonItem
ためのカスタムビューを作成し、サンプル・コード、カスタムビューのUITapGestureRecognizer
を追加し、2
としてnumberOfTapsRequired
プロパティの値を設定します。代わりにUIBarButtonItemの
class viewController: UIViewController {
var doubleTapGesture: UITapGestureRecognizer!
var barButton: UIBarButtonItem!
var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button = UIButton(type: .custom)
button.setTitle("title", for: .normal)
button.frame = CGRect(x: 0, y: 0, width: 64, height: 30)
doubleTapGesture = UITapGestureRecognizer(target: self, action: #selector(viewController.buttonClicked))
doubleTapGesture.numberOfTapsRequired = 2
button.addGestureRecognizer(doubleTapGesture)
barButton = UIBarButtonItem(customView: button);
navigationItem.rightBarButtonItem = barButton
}
func buttonClicked() {
// Method for UITapGestureRecognizer
}
}
1
関連する問題
- 1. スワイプでボタンを押した場合の書き込み方法
- 2. コントロールボタンが2回押された場合にのみJFrameを表示する方法
- 3. 複数のクライアントがMySQLで選択した場合の競合状態を回避する方法は?
- 4. JButtonを使用する方法「押して離した場合」
- 5. キーまたは組み合わせを押した場合、バックグラウンドでプログラムからチェックする方法は?
- 6. Android、同じボタンを複数回押したままにする
- 7. selectステートメント内でスカラー関数を複数回呼び出すことは、関数を複数回実行しますか?その場合、回避する方法
- 8. ユーザがctrl + cを複数回続けて押すたびにキーボード割り込みをループする方法
- 9. コントロールがWebページに複数回存在する場合のレポート方法
- 10. フォーラムでTabキーを押した場合の取得方法
- 11. ヘッダーのみのライブラリーを複数回含む場合の重複シンボル
- 12. geckowebbrowserで複数回文書を検出したい場合
- 13. マウスボタンを押した場合、WinFormを検出する場合#
- 14. 複数のao.lockの回避方法を回避するには?
- 15. 変数が別の変数と等しい場合にトリガを設定する方法は?
- 16. UITextView完了ボタンアクション - リターンキーの場合
- 17. ファイルが変更された場合のみTeamcityでビルドをトリガする方法はありますか?
- 18. web.xmlに複数のフィルタがある場合、FileUploadイベントはトリガされません
- 19. Keypressイベントは、Windows CEの1回のENTERボタンを押したときに2回トリガされます
- 20. AngularJS、共有データサービスが複数回トリガされました
- 21. jQuery複数のランダムドロップイベントの後に関数をトリガする方法は?
- 22. 複数の矢印をキャンバスに複数回クリックする方法
- 23. 左または右のキーを押したときに車を回す方法
- 24. トリガpl/sqlをトリガした行を描画する方法は?
- 25. JS/RegExpを複数回置き換えた場合
- 26. 方法を複数回話す方法
- 27. 1つのキーを押したときに別のキーを複数回押しますか?
- 28. キーボードが画面上にまだ素早く動いているときにボタンアクションをトリガする方法は?
- 29. オートコンプリート選択を選択した場合にのみ表示する方法は?
- 30. Input.GetKeyのキーを押すと複数回trueを返します
あなたのUIBarButtonItemにUITapGestureRecognizerを追加 – Nilesh