Това може да е "хак", но работи. Моят случай е малко по-различен. Използвам един UIPicker
, но мога да променя кой обект е манипулация.
Проблемът ми беше, че можете да изберете един обект, да завъртите инструмента за избор и докато той завършва въртенето си, да изберете друг обект. Това, което в крайна сметка се случи, беше, че новият обект получаваше крайната стойност на това завъртане, вместо да бъде игнорирано.
Какво направих, когато настроих UIPicker
, бих му дал уникален tag
въз основа на обекта, който трябваше да актуализира.
- (void)updatePickerView:(UIPickerView*)pickerView
{
...
pickerView.tag = [self.myObject.position integerValue];
[pickerView selectRow:i inComponent:0 animated:NO];
}
След това, когато завърши въртенето си, проверявам, за да се уверя, че етикетът е подреден.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (pickerView.tag == [self.myObject.position integerValue]) {
...
}
}
Не съм сигурен как работи от страна на Apple, но това беше достатъчно, за да работи за мен.
Като странична бележка и не съм сигурен дали това има значение, но моят UIPicker
е в UITableViewCell
, но тъй като това е клетка за многократна употреба и тъй като имах проблемите, които имах, предполагам, че UIPicker е същият, когато е преместен от една позиция в друга (тъй като има само един на екрана в даден момент).
person
RyanJM
schedule
15.06.2015
[picker selectRow:[picker selectedRowInComponent:i] inComponent:i animated:YES];
за всеки компонентi
, който имате? - person nacho4d   schedule 30.01.2011