Ios 如何限制UIPickerView组件
如何限制Ios 如何限制UIPickerView组件,ios,objective-c,uipickerview,uipickerviewcontroller,Ios,Objective C,Uipickerview,Uipickerviewcontroller,如何限制UIPickerView组件滚动 我在UIPickeView1秒组件结束滚动中有两个组件,允许用户触摸第一个组件以更改其中的值 如何限制用户触摸组件1,直到第二个组件滚动完成。使用,您可以检查UIPickerView是否滚动。根据滚动,您可以启用/禁用与UIPickerView的交互 extension UIView { func isScrolling () -> Bool { if let scrollView = self as? UIScroll
UIPickerView
组件滚动
我在UIPickeView
1秒组件结束滚动中有两个组件,允许用户触摸第一个组件以更改其中的值
如何限制用户触摸组件1,直到第二个组件滚动完成。使用,您可以检查UIPickerView是否滚动。根据滚动,您可以启用/禁用与UIPickerView的交互
extension UIView {
func isScrolling () -> Bool {
if let scrollView = self as? UIScrollView {
if (scrollView.isDragging || scrollView.isDecelerating) {
return true
}
}
for subview in self.subviews {
if subview.isScrolling() {
return true
}
}
return false
}
}
UIPickerViewDelegate以检测是否滚动
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.isScrolling() {
pickerView.isUserInteractionEnabled = false
} else {
pickerView.isUserInteractionEnabled = true
}
//Use this for reduce lines
//pickerView.isUserInteractionEnabled = !pickerView.isScrolling()
return "Row \(row)"
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
pickerView.isUserInteractionEnabled = true
}
唯一的问题是你不能触摸当前的滚动组件,直到组件完成滚动。希望有人也能解决这个问题
使用,可以检查UIPickerView是否正在滚动。根据滚动,您可以启用/禁用与UIPickerView的交互
extension UIView {
func isScrolling () -> Bool {
if let scrollView = self as? UIScrollView {
if (scrollView.isDragging || scrollView.isDecelerating) {
return true
}
}
for subview in self.subviews {
if subview.isScrolling() {
return true
}
}
return false
}
}
UIPickerViewDelegate以检测是否滚动
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.isScrolling() {
pickerView.isUserInteractionEnabled = false
} else {
pickerView.isUserInteractionEnabled = true
}
//Use this for reduce lines
//pickerView.isUserInteractionEnabled = !pickerView.isScrolling()
return "Row \(row)"
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
pickerView.isUserInteractionEnabled = true
}
唯一的问题是你不能触摸当前的滚动组件,直到组件完成滚动。希望有人也能解决这个问题