Насколько я знаю, это будет испорчено, если вы сократите это.
а) UITableView+UIPickerView
Для этого я рекомендую использовать «строку в UITableView+UIPickerView
». Вы можете использовать строку в tableView, например, dropDownList в Windows, когда при нажатии на эту строку будет отображаться pickerView (сперва скрытый).
б)
Если у вас есть длинные списки данных в tableView, и только один из элементов должен выбирать данные, вы должны прокрутить представление, используя следующий метод (убедитесь, что вычислили исходную позицию pickerView, так как он будет перемещаться вверх / вниз вместе) :
-(void)setViewMove:(BOOL)moveUP offset:(CGFloat)offset
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
if(moveUP)
{
rect.origin.y-=offset;
rect.size.height+=offset;
}
else //move down
{
rect.origin.y+=offset;
rect.size.height-=offset;
}
self.view.frame = rect;
[UIView commitAnimations];
}
с)
Вы также можете добавить другое представление для средства выбора и вернуться к нему, когда вы что-то выбрали.
Мой вывод:
Если в tableView только несколько строк, используйте.
Если у вас есть много строк в tableView, но только одна из них требует выбора, используйте b.
Если у вас есть много строк в tableView, и многие из них требуют выбора, используйте c.