У меня есть приложение на основе представления, которое содержит некоторые текстовые поля, которые я пытаюсь заполнить некоторыми сборщиками. Например, один из них будет выбран для выбора даты. Я использую следующие, чтобы добавить новый вид на нижнюю часть моего текущего вида, а затем прокрутите весь вид вверх:Как добавить UviewTrack Subview с рабочим взаимодействием с пользователем
- (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 вообще не принимает мой вход. Он просто застрял на текущей дате. Я не уверен, что мне здесь не хватает, возможно, что-то простое.
Да, все. Я вижу это, но не использую его. Если я проверю «подзаголовки клипов», то я даже не могу увидеть subviews, хотя ... так что такое реальное решение здесь? Является ли мой подход совершенно неправильным? – shawnwall
Похоже, вы идете по неверному пути. Попробуйте добавить UIDatePicker в свой вид viewController. Если это то же самое, что вы манипулируете в scrollTheView, НЕ ДЕЛАЙТЕ. Вы никогда не должны настраивать границы вида. Попробуйте переместить материал в подпункты и перемещать их. –
Ах, моя сложность в том, что я хочу перенести весь свой первоначальный вид вверх, так что, когда новый datepicker прокручивается снизу, он по существу «толкает» существующее представление вверх. В настоящее время я добавляю новый сборщик, используя [self.view addSubview: picker]; Происхождение self.view.frame - это то, к чему я продвинулся до сих пор в коде метода выше. – shawnwall