2017-03-17 30 views
2
我有以下UI

enter image description here斯威夫特UIPickerView禁用成分

是否有可能如果使用開關禁用只有最後的兩個組件?如果是這樣,我該怎麼做?

+0

你可以看看這篇文章http://stackoverflow.com/questions/1565743/uipickerview-disable-row-selection –

+0

我看到這篇文章,但這不是我想要做的。如果整天打開,花點時間是沒有意義的,所以我想禁用它。滾動到另一次對我來說毫無意義 –

回答

0

您無法禁用組件。但是,您可以使用reloadAllComponents方法重新加載選擇器,並且只應重新加載所需的組件。不要加載時間組件。

0

您不能禁用組件。但是你可以嘗試這些解決方案。

解決方案一:

var selectedRow3 = 3 
var selectedRow4 = 3 

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

      switch component { 
    case 3: 
     myPicker.selectRow(selectedRow3, inComponent: component, animated: true) 
    case 4: 
     myPicker.selectRow(selectedRow4, inComponent: component, animated: true) 

    default: 
     break 
    } 

} 

解決方法二:

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 

    switch component { 
    case 3: 
     return 1 
    case 4: 
     return 1 
    default: 
     return 10 
    } 
} 
0

是的,可以。但不使用本地UIPickerView。我寫了一個名爲DLPickerView的選取器視圖。此選取器視圖基於UIScrollView實施。你應該檢查它。