2013-01-10 64 views
3

我有一個動態的UIPickerView的作用就像是:iOS版 - UIPickerView禁用成分

  • 開始只有1個分量
  • 當選擇一排,添加新的組件

對於精密,按分量我是指列。

我只想要最後一個添加的組件被激活。其他人應該完全禁用,甚至不應該能夠滾動或能夠選擇行。

我已經知道如何動態添加組件,但我不知道如何禁用它。

有沒有辦法做到這一點?

回答

3

我不知道一種方法來禁用組件,而不是完全由您自己來實現它,但是您可以做的是一次只顯示一個組件,並用「後退」按鈕添加一個附件視圖,例如,如果您選擇了一個位置,您將顯示一個包含狀態的組件,並且當用戶選擇一個狀態時,您將用一個城市名稱替換該組件,並添加一個「後退」按鈕,以便在必要時進行回溯。這是我知道你想要做的最乾淨的解決方案。

如果你絕對需要「禁用」一個組件,你將別無選擇,只能繼承UIPickerView並重寫touchesBegan:withEvent和類似的方法來基本忽略其他組件。要「禁用」,您可以在禁用的組件上放置一個帶有Alpha < 1.0的灰色圖層。我必須警告你,如果執行不當,這可能會變得醜陋,並且會產生不可預見的後果。祝你好運。

+0

我已經想過這個解決方案,但不幸的是,這不是我所能做到的,我的老闆想要以這種方式來實現它:( – Yaman

+0

我編輯了我的答案來描述如何「禁用」一個組件。它,但它是可能的,祝你好運。 – HackyStack

1

我創建了兩個UIViews,一個用來保存選擇器和一個子視圖,並啓用用戶輸入來捕獲觸摸。將其放置在組件上,並且可以根據需要切換userInputEnabled。