Pytanie Czy mogę programowo przewinąć do żądanego wiersza w UIPickerView?


Domyślnie pierwszy wiersz jest podświetlany po inicjalizacji UIPickerView. Jak wyróżnić konkretny wiersz lub przewinąć programowo do konkretnego wiersza?


31
2018-02-04 04:55


pochodzenie




Odpowiedzi:


Jak zawsze jest to dokładnie udokumentowane. Dokumentacja Apple dla UIPickerView powinieneś powiedzieć, że metoda, którą prawdopodobnie chcesz – selectRow:inComponent:animated:.


59
2018-02-04 05:00



Jeśli ktoś nie może go znaleźć w Xamarin.iOS (MonoTouch), jest wywoływany Select() nie SelectRow() jakbyś myślał. - Alex Wiese
Dla mnie dzwonienie - selectRow:inComponent:animated: Metoda nie była wystarczająca, musiałem zadzwonić do delegata -pickerView:didSelectRow:inComponent: programowo też. - fruechtemuesli
Dobrze; programowo ustawienie wybranego wiersza nie wywołuje metody delegata. Jeśli chcesz podjąć działania w odpowiedzi na wszystkie zmiany selekcji, musisz zadzwonić sam. - warrenm


Tak, to bardzo łatwe [picker selectRow:row inComponent:component animated:NO];


33
2018-02-04 04:59





Jeśli chcesz wywołać metodę delegata pickerView: didSelectRow: inComponent, powinieneś wywołać ją ręcznie:

Obj-C

[self.myPickerView selectRow:0 inComponent:0 animated:NO];
[self pickerView:self.myPickerView didSelectRow:4 inComponent:0];

Szybki

self.myPickerView.selectRow(0, inComponent: 0, animated: false)
self.pickerView(self.myPickerView, didSelectRow: 0, inComponent: 0)

24
2017-07-16 20:53





Praca w iOS 9 z XCode 7.3, aby dokonać zmian w środowisku wykonawczym danych w widoku próbnika o nazwie fieldPicker:

// first load your new data to your picker view's data source (not shown here...) then load the data into the picker view using it's delegate
    [self.fieldPicker reloadAllComponents];

    // now that the data is loaded, select a row in the picker view through it's delegate
    [self.fieldPicker selectRow:([self.theFields count] - 1) inComponent:0 animated:NO];

// retrieve the row selected in the picker view to use in setting data from your data source in textboxes etc.
    long row = (long)[self.fieldPicker selectedRowInComponent: 0];

2
2018-06-12 22:36