テキストフィールドをタッチしてドラッグしてビューをスクロールしようとすると、iPhoneの連絡先の編集ビューをスクロールするのと同じように、ビューは移動せず、テキストフィールド間をタッチしてドラッグしたり、横に移動したりしません。スクロールビューのテキストフィールドの一部は機能しますが、テキストフィールドにタッチすると機能しません。
任意の洞察をいただければ幸いです。ありがとう!
テキストフィールドをタッチしてドラッグしてビューをスクロールしようとすると、iPhoneの連絡先の編集ビューをスクロールするのと同じように、ビューは移動せず、テキストフィールド間をタッチしてドラッグしたり、横に移動したりしません。スクロールビューのテキストフィールドの一部は機能しますが、テキストフィールドにタッチすると機能しません。
任意の洞察をいただければ幸いです。ありがとう!
テキスト フィールドに追加した のdelaysContentTouches
プロパティをYES
に設定してみてください。UIScrollView
これにより、テキスト フィールド内でタッチしてからドラッグすると、スクロールできるようになります。
に設定delaysContentTouches
してtrue
もうまくいきませんでした。何をしたかは、スクロールビューのジェスチャーレコグナイザーを繰り返し処理し、それぞれdelaysTouchesBegan
とcancelsTouchesInView
をtrue
とに設定することでしfalse
た:
scrollView.gestureRecognizers?.forEach {
$0.delaysTouchesBegan = true; $0.cancelsTouchesInView = false
}
私はそれがこの状況で解決すると思います
extension UITableView {
override public func touchesShouldCancelInContentView(view: UIView) -> Bool {
if view is UITextField || view is UITextView {
return true
}
return super.touchesShouldCancelInContentView(view)
}
}
以下のアプローチで試してください。UIScrollView を ScrollView に置き換えて、コードをプロジェクトに追加するだけです。
スイフト 4.1
class ScrollView: UIScrollView {
override func touchesShouldCancel(in view: UIView) -> Bool {
if type(of: view) == TextField.self || type(of: view) == UITextView.self {
return true
}
return super.touchesShouldCancel(in: view)
}
}