У меня есть приложение на основе представления, в котором есть несколько текстовых полей, которые я пытаюсь заполнить некоторыми средствами выбора. Например, один из них будет для выбора даты. Я использую следующее, чтобы добавить новый вид в конец моего текущего вида, а затем прокрутить весь вид вверх:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if(textField == [self date]) {
editingDate = YES;
UIDatePicker *pv = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,460,0,0)];
pv.userInteractionEnabled = YES;
[self.view addSubview:pv];
textField.placeholder = @"currently selecting below";
[self scrollTheView:YES];
return NO;
}
return YES;
}
Мой метод scrollTheView выполняется следующим образом:
- (void)scrollTheView:(BOOL) moveUp {
int scrollAmount = 212;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
if(moveUp){
rect.origin.y -= scrollAmount;
}
else {
rect.origin.y += scrollAmount;
}
self.view.frame = rect;
[UIView commitAnimations];
}
Моя проблема в том, что, хотя дисплей выглядит идеально, элемент управления DatePicker не принимает мой ввод вообще. Он просто застрял на текущей дате. Я не уверен, что мне здесь не хватает, наверное, что-то простое.