Varsayılan olarak, UIPickerView başlatıldıktan sonra ilk satır vurgulanır. Belirli bir satırı nasıl vurgularım veya belirli bir sıraya programlı olarak kaydırırım?UIPickerView'da programlı olarak istenen bir satıra gidebilir miyim?
29
A
cevap
60
[picker selectRow:row inComponent:component animated:NO];
Her zaman olduğu gibi bu iyice belgelenmiştir çok kolaydır. UIPickerView
için Apple belgeleri, muhtemelen istediğiniz yöntemin – selectRow:inComponent:animated:
olduğunu söylemelidir. didSelectRow: hem yetki yöntem pickerView tetiklemek istiyorsanız
33
Evet,
21
inComponent, bunu elle çağırmalıdır:
Obj C
[self.myPickerView selectRow:0 inComponent:0 animated:NO];
[self pickerView:self.myPickerView didSelectRow:4 inComponent:0];
Swift
self.myPickerView.selectRow(0, inComponent: 0, animated: false)
self.pickerView(self.myPickerView, didSelectRow: 0, inComponent: 0)
2
XCode 7.3 ile iOS 9'da Çalışmak, için fieldPicker adlı bir seçici görünümünde verilere çalışma zamanı değişiklikleri yapın:) (herkes denir Xamarin.iOS (MonoTouch) onu bulamıyorsanız
// 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];
'Seç' değil 'SelectRow()' senin gibi düşünürdüm. –
Beni çağırmak için '- selectRow: inComponent: canlandırılmış:' yöntem yeterli değildi, '-pickerView: didSelectRow: inComponent: 'programcı olarak çağırmak zorunda kaldım. – fruechtemuesli
Sağ; Seçilen satırın program aracılığıyla ayarlanması delege yöntemini çağırmaz. Tüm seçim değişikliklerine karşılık olarak harekete geçmek istiyorsanız, bunu kendiniz aramak zorundasınız. – warrenm