次のコードがあります。メニュー用の第三者図書館(CarbonKit)です。特定のセグメント(タブ)を選択してジェスチャ認識機能を追加しようとすると、機能しません。私が間違っていることは何ですか?特定の[UIView]配列に対してUITapGestureRecognizerが機能しない
明らかに、私はhandleTapにブレークポイントを設定しました。それは関数にも入っていません。
次のコードがあります。メニュー用の第三者図書館(CarbonKit)です。特定のセグメント(タブ)を選択してジェスチャ認識機能を追加しようとすると、機能しません。私が間違っていることは何ですか?特定の[UIView]配列に対してUITapGestureRecognizerが機能しない
明らかに、私はhandleTapにブレークポイントを設定しました。それは関数にも入っていません。
サードパーティのUISegmentedControlが一般的なものに似ている場合、必要なものはすべて既に用意されています。ここに私のコードのいくつかがあります。 IBを使用している場合は、コントロールをIBActionに接続してください。
let imageSegments = UISegmentedControl (items: ["Original","Stained"])
override func viewDidLoad() {
super.viewDidLoad()
imageSegments.tintColor = UIColor.yellow
imageSegments.selectedSegmentIndex = 1
imageSegments.addTarget(self, action: #selector(changeImageView), for: .valueChanged)
view.addSubview(imageSegments)
}
func changeImageView() {
switch imageSegments.selectedSegmentIndex {
case 0:
imageView.image = imgOriginal
case 1:
imageView.image = imgEdited
default:
break
}
imageView.setNeedsDisplay()
}
もう一度私の押したセグメントをもう一度押すと、これはうまくいきません。どのように私はそれを行うことができますか? – SoundShock
原因は、セグメント化されたコントロール**がどのように動作するべきかに起因します**。私は今あなたの問題を参照してください。私の推測 - ちょうど、推測 - あなたは葛藤に遭っているということです。つまり、UISegmentedControlの「すぐに使える」機能は、受信者側では、(元の質問の)タップ認識機能よりもレスポンダーチェーンの方が高く、タップ(1)は「スケルチ」または「キャンセル」されています。 UISegmentedControl - あなたはすでに**そのセグメントを使用しているので、(2)そのタップはチェーン内のそれを超えることはありません。あなたができる唯一のことは、UIやサブクラスのリエンジニアリング、物事の再考です。 – dfd
ジェスチャーを追加するときに 'carbonSegmentedControl'がnilでないかどうかチェックしましたか?また、Swift 2またはSwift 3を使用していますか? – alexburtnik
@alexburtnik Swift 2.3を使用していますが、carbonSegmentedControlはnillではありません。オプション(>) –
SoundShock
いくつかの考え。まず、carbonTabSwipeNavigationとは何ですか?次に、carbonSegmentedControlがあなたのUISegmentedControlであると仮定すると、なぜ特定のボタンにタップジェスチャーを追加しようとしていますか?既に** **タップが内蔵されています。あなたは単にUISegmentedControl.valueChanged()に対してコードを作成してselectedSegmentIndexをチェックできませんでしたか? – dfd