如何限制 UIPickerView 组件
Posted
技术标签:
【中文标题】如何限制 UIPickerView 组件【英文标题】:How to restrict UIPickerView Component 【发布时间】:2016-06-28 05:41:48 【问题描述】:如何限制UIPickerView
组件滚动。
我在UIPickeView
中有两个组件,第二个组件结束滚动允许用户触摸第一个组件来更改其中的值。
我如何限制用户触摸组件一,除非第二个组件滚动补充。
【问题讨论】:
【参考方案1】:使用this extension,您可以检查 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 组件的主要内容,如果未能解决你的问题,请参考以下文章