UIPickerView 禁用列

4

如何禁用UIPickerView的列?

我想要禁用选择器中的某一列。比方说,我有一个有3列的选择器,我希望禁用第二列。


老兄,我认为你需要花时间更详细地解释一下你的问题,因为目前它并不是很有意义。关于“Mouse”这个词,我无法理解其含义,请提供更多上下文信息。 - John Parker
请问您能否详细说明一下?您是想禁用整个选择器的交互还是只禁用其中一列的交互? - Sudhanshu
我想禁用选择器中的一列。比如说,我有一个有3列的选择器,我想禁用第二列。 - Altynbek Usenbekov
2个回答

1

这里有几个选项。

1)捕获第二列的交互并覆盖它。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

这个方法可以实现简单地返回到选择之前的位置。然而,他们仍然可以与第二列进行交互。
2) 简单地从选择器中移除该列。
我相信这是最好的选择。有一个布尔值'showSecondColumn'。然后,在:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

你可以简单地检查你的小旗帜并返回相应的数字。UIPickerView有一个方法:reloadAllComponents

祝你好运!


是的,最好的解决方案是删除该列。但在我的情况下,所有列都必须可见,一些列的用户交互必须被禁用(不能滚动),并且在视觉上必须是禁用的。谢谢,对我的英语表示抱歉。 - Altynbek Usenbekov

0
似乎没有办法禁用列。我像这样解决了(不是最佳解决方案):
  1. 获取“图像”(快照)作为列
  2. 将“图像”灰度化
  3. 启用“图像视图”的用户交互
  4. 将“图像视图”添加到选择器中作为子视图

如果有更好的方法,那就太好了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接