我的动态UIPickerView
就是这样的:
对于精度,按组件我的意思是列。
我只想激活我最后添加的组件。其他人应该完全禁用,甚至不能滚动或能够选择行。
我已经知道如何动态添加组件,但我不知道如何禁用它。
有没有办法做到这一点?
答案 0 :(得分:3)
我不知道如何在不完全自己实现的情况下禁用组件的方法,但您可以做的是一次只显示一个组件并添加带有“后退”按钮的附件视图,例如,如果您选择一个位置,您将显示一个具有状态的组件,当用户选择一个状态时,您将该组件替换为具有该状态的城市名称的组件,并添加一个“后退”按钮,以便在必要时进行回溯。这是我所知道的最干净的解决方案。
如果你必须“禁用”一个组件,你将别无选择,只能继承UIPickerView并覆盖touchesBegan:withEvent和类似方法,基本上忽略对其他组件的触摸。要“禁用”,您可以使用alpha<禁用组件的1.0。我必须警告你,如果没有正确实施,这可能会变得丑陋,并且会产生不可预见和不良后果。祝你好运。
答案 1 :(得分:1)
我创建了两个UIViews,一个用于保存选择器,一个子视图启用了用户输入以捕获触摸。将其放在组件上,您可以根据需要切换userInputEnabled。